2024-10-06学习记录

最近很迷茫...恩..总之还是得重整旗鼓吧!

之前学习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() 来操作消息

之后的内容是日志

上面这些基本就是快速上手的内容了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容