最近很迷茫...恩..总之还是得重整旗鼓吧!
之前学习flask总是看的书,这几天又自己试了下flask的前后端分离,今天打算试试看官方文档进行学习
首先是快速上手
第一个内容是 一个最小的应用
图中的代码展示了如何构建一个最简单的flask程序
另外文件名也不要叫做flask.py,否则会引起冲突
第二个内容是调试模式
启动的时候通过debug来打开调试模式
flask --app hello run --debug
第三个内容是HTML转义
当返回html时,为了防止被注入攻击,在返回前会对html内容进行转义
第四个内容是路由
重点在于使用route()装饰器来把函数绑定到URL
在路由中也可以使用变量,如 <variable_name>
@app.route('/user/<username>')
可以选择性的加上一个转换器,为变量指 定规则
如@app.route('/post/<int:post_id>')
之后提到了关于url路径结尾是否有斜杠
在最后如果有斜杠,在访问的时候没有带上斜杠,会自动进行重定向补全
如果最后没有斜杠,在访问的时候添加了斜杠,则会得到404错误
然后提到url_for()函数用于构建指定函数的 URL
之后提到可以用不同的http方法来处理不同的请求
缺省情况下,一个路由只回应 GET 请求。可以使用 route() 装饰器的 methods 参数来处理不同的 HTTP 方法。
第四块内容是静态文件
只要在您的包或模块旁边创建一个名为 static 的文件夹就行了。静态文件位于应用的 /static 中。
第五块内容是渲染模板
Flask 自动为您配置 Jinja2 模板引擎。
使用 render_template() 进行模板渲染
自动转义默认开启。如果你信任某一段数据,可以使用 Markup 类把它标记为安全的或在模板中使用 |safe 过滤器
第六块内容是操作请求数据
from flask import request
总结一下关于request的的内容,就是通过method来设置请求方法,通过form获取表单,通过args获取查询参数
之后是文件上传
在您的 HTML 表单中设置 enctype="multipart/form-data" 属性
如果想要把客户端的文件名作 为服务器上的文件名,可以通过 Werkzeug 提供的 secure_filename() 函数:
之后提到了cookie相关的东西
读取cookie username=request.cookies.get('username')
设置cookie resp=make_response(render_template(...))
resp.set_cookie('username','the username')
之后是重定向和错误
使用 redirect() 函数可以重定向。使用 abort() 可以更早退出请求,并返回错误代码:
可以使用errorhandler来定制出错界面
之后是关于响应
JSON 格式的 API
如果从 视图返回一个 dict 或者 list ,那么它会被转换为一个 JSON 响应。
关于会话
使用前要先设置一个秘钥app.secret_key=b'_5#y2L"F4Q8z\n\xec]/'
之后提到了消息闪现
flash() 用于闪现一个消息
在模板中,使用 get_flashed_messages() 来操作消息
之后的内容是日志
上面这些基本就是快速上手的内容了