Flask Start
此教程内容涉及内容很浅,仅为快速上手Flask提供关键注意要点
开启debug 热更新模式
edit configurations > FLASK_DEBUG = on
修改flask项目运行的host
edit configurations > Additional options = –host=0.0.0.0
修改flask项目运行的port
edit configurations > Additional options = –host=0.0.0.0 –port=8060
- 方式一
1
app.run(debug=True)
- 方式二
- 配置系统环境变量为flask开发模式
- 配置系统换环境变量,打开flask调试模式
1
2
3import os
os.environ["FLASK_ENV"] = 'development'
os.environ["FLASK_DEBUG"] = '1'
URL与视图的映射
url一般由三部分组成:
- 协议
- 如http(80)/https(443)
- 访问域名时,下面两种方式的含义相同:
127.0.0.1:80
- ip/域名
- 路由
1 | from flask import Flask, request, render_template |
1 | # 路由配置 |
在访问装饰器配置的路由时,会执行下方的函数,函数返回值就是渲染内容
flask的template引入是通过Jinjia模板引擎的
仅需要在flask项目下的 /templates 文件夹中加入对应html模板,
然后在路由映射函数的返回值中使用flask.render_template(‘指定模板.html’)
route+template实例演示
定义时使用 <> 包裹变量名称,
在映射函数的参数中加入对应变量名称,
在映射函数被调用时,传入变量值,参数会通过url传入
1 |
|
<参数类型:参数名称>
1 |
|
通过 /path?key1=value1?key2=value2 的格式传递的参数都存储在 request.args 中
request 需要从 flask 内引入
1 |
|
需要从flask中引入render_template方法
1 | <!--template/index.html--> |
1 |
|
render_template(url[,**args])
1 | <h1>{{title}}</h1> |
1 |
|
1 | <body> |
1 | # 类定义 |
1 | <h1>{{ 变量名|指定过滤器 }}</h1> |
jinjia提供了如下这些过滤器:
自定义过滤器需要用到add_template_filter方法
1 | # filter_fun 过滤器方法,入参为被过滤的值,返回过滤后值 |
下面提供的是一个对datetime类型数据进行格式化的自定义过滤器:
1 | <body> |
1 | # 1 定义过滤器 |
jinjia模板中提供两种基本的流程控制语句:
if-else
1
2
3
4
5
6
7{% if exp_A %}
...
{% elif exp_B %}
...
{% else exp_C %}
...
{% endif %}for-in
1
2
3{% for i in arr %}
...
{% endfor %}
用法类似于slot插槽
父模块里加入命名插槽:
1 | {% block 插槽名 %}{% endblock %} |
子模块中使用插槽名定位插槽插入
1 | {% extends '父模块.html' %} |
需要用到url_for方法
jinjia模板通过url_for获取静态文件的默认地址在template同级目录下的static文件夹中
有如下目录结构:
- static
- css
- index.css
- img
- toby_dog.jpg
- js
- main.js
- templates
- static.html
url_for方法的作用是:根据视图函数的名称生成url
1 | # "static"表示路径static |
1 | <html lang="en"> |