flask常用知识点(不知道今天写,多久还记得)
app.route()装饰器可以确定把装载在哪个url上
from flask import Flask
app = Flask(name)
@app.route('/')
def hello_word():
return 'Hello World'
if name == "main":
app.run()
# 或者可以使用
app.run(host='0.0.0.0',port=900) # 指定端口
render_template实现模板渲染
通过把要加载的模板文件和参数传给该方法,即可实现HTML的自动渲染
当然,一个函数也可以通过多个route()装饰器绑定到多个URL上
;
一般所有的模板文件都保存在templates文件夹下
Markup转换变量中的特殊字符
有些特殊字符,如(<、>、空格、/等),会被HTML客户端(浏览器)解释成特殊含义。
这时候,我们可以通过Markup()函数将这些字符串做转义处理,然后传给render_templates()函数。
重定向和错误处理
重定向(Redirect)是指将一个网络请求重新指定URL并转到其他地址的技术。
如果想中止一个请求并返回错误,而不是重定向到其他地址,则可以使用abort();直接在函数中使用abort(400) # 400是标准的HTTP请求错误,其含义为请求无效
当然,abort()函数仅仅为客户端返回400错误,并没有返回自定义的处理界面,这时候可以添加一个
errorhandler()装饰器用来捕获错误,并在下方添加函数用来定义捕捉错误的界面
带变量的路由
可以直接在url参数中定义相关的变量,用一对<>这样的括号包括写在@app.route()装饰器内即可。括号里面参数可以使用到return中,以及render_templates中。两次使用的参数必须相同
url中的结尾
url中结尾通常分为有斜杠和无斜杠;
结尾有斜杠输入url访问时结尾有无斜杠均可访问。
结尾无斜杠,输入url访问时,一定要无斜杠,不然,有斜杠的话就无法访问到页面
HTTP方法绑定
在flask中,路由默认使用get方法进行路径访问。
通过修改route中的参数method,他是一个列表,里面的参数是字符串,所以哪些字符串就是get,post,put等方法。
在装饰器下方的函数中通过request.method=='某个方法,就可以进行其他的操作'
注意:request是Flask框架的一个全局对象,可以获得很多HTTP请求的客户端相关的信息。
路由地址反向生成
url_for()函数来实现这个功能。该函数是单独的,并没有写在装饰器函数之内。url_for函数的第一个参数是需要获取URL的函数名,URL中如果有变量,可以在url_for中添加参数来实现对变量的赋值。
使用这个函数的原因
1.反向解析比硬编码有更好的可读性和可维护性。比如,当需要更换路由函数中URL的地址时,无须再更改和调用url_for处的代码。
2.url_for会自动处理必须的特殊字符转换和Unicode编码转换。如空格就会自动解析为20%.
会话上下文
是Web服务器上基于Cookie的对象,它提供了为同一个客户端在多次请求之间共享信息信息的方式。
在Web环境中,会话(Session)是一种客户端与服务器保持状态的解决方案。同一用户的多个请求共享同一个会话
会话通常通过Cookie来实现:
在flask框架中使用flask.session对象操作会话
注意:flask.session对象只有在请求的处理环境中才能被调用
flask.session对象还维护自生的状态
new:判断本次请求的Session是否是新建fied:的
modified:判断本次请求中是否修改过session键值
应用全局对象
一般应用在:多个响应函数之间共享数据;
可以通过flask.g来实现。
请求上下文
请求上下文主要是在服务器端获得从客户端提交的数据