Flask basics
My flask notes
路由相关
route()
Flask中的**route()**装饰器用于将URL绑定到函数。例如:
@app.route('/hello')
def hello_world():
return 'hello world'
在这里,URL '/ hello' 规则绑定到**hello_world()**函数。
因此,如果用户访问http://localhost:5000/hello ,
**hello_world()**函数的输出将在浏览器中呈现。
可以将路径添加变量来动态构建URL<var>
, 该变量作关键子参数传入给修饰器修饰的func
也可以像如下所示指定变量类型
@app.route('/project/<int:project_id>')
def to_project_page(project_id):
return render_template(f"project/{project_id}.html")
html 内跳转
url_for()
<link rel="icon" href="{{url_for('static',filename='/images/ico/favicon.ico')}}">
<li><a href="{{url_for('to_elements_page')}}">Generic Page</a></li>
带参数的跳转
<a href="{{url_for('to_project_page', project_id=1)}}">Ugly hand writing</a>
Flask Request对象
来自客户端网页的数据作为全局请求对象发送到服务器。为了处理请求数据,应该从Flask模块导入。
Request对象的重要属性如下所列:
- Form - 它是一个字典对象,包含表单参数及其值的键和值对。
- args - 解析查询字符串的内容,它是问号(?)之后的URL的一部分。
- Cookies - 保存Cookie名称和值的字典对象。
- files - 与上传文件有关的数据。
- method - 当前请求方法。
Flask 模板的继承
创建父模板base.html
{% block head %}
{% endblock %}
子模版调用父模板
{% extends "base.html" %}
重写父模板的接口
{% block head %}
{% endblock %}
在父模板接口后面添加内容super()
{% block head %}
{{ super() }}
new contents
{% endblock %}