Flask basics

My flask notes

Flask basics
Photo by Aakash Dhage / Unsplash

路由相关

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 %}