安装
代码语言:javascript复制$ pip install flask
- werkzeug:处理application
- jinja2:渲染html
flask:组装大师
初始化application
代码语言:javascript复制from flask import Flask
app = Flask(__name__)
添加路由
代码语言:javascript复制@app.route('/')
def index():
return 'Hello Flask!'
运行服务器
代码语言:javascript复制app.run()
运行
请求与响应
flask的请求与响应都存放在request
对象中
from flask import request
访问http://127.0.0.1:5000/?name=zhongxin
调试
Flask的`init`
代码语言:javascript复制def __init__(
self,
import_name,
static_url_path=None,
static_folder="static",
static_host=None,
host_matching=False,
subdomain_matching=False,
template_folder="templates",
instance_path=None,
instance_relative_config=False,
root_path=None,
):
import_name
:static_url_path
:查找静态文件的路径static_folder
:静态文件 文件夹static_host
:host_matching
:服务器匹配subdomain_matching
:子域名template_folder
:模版文件 文件夹instance_path
:app的路径instance_relative_config
:相对设置root_path
:根目录
渲染html
代码语言:javascript复制from flask import render_template
@app.route('/hello')
def hello():
a = request.args
return render_template('index.html')
hello
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Flask</title>
</head>
<body>
你好
</body>
</html>
run方法
不要在生产环境使用调试模式,会遭到攻击
- debug
- host
- port
def run(self, host=None, port=None, debug=None, load_dotenv=True, **options):
debug
- 当
debug=True
的时候修改代码会自动重启 - 在前端显示具体的错误信息
host
- 其他网络要能访问到使用
0.0.0.0
- 固定的网络地址使用指定地址,例如
192.168.1.23
`if name__ == "__main"`的作用
- 该脚本运行时运行
- flask生成环境中不会使用
run
- 用
uwsgi
nginx
- 其他情况下,如果通过模块导入,不是执行脚本,则main不会运行
- 生成环境使用
nginx
gunicorn/uwsgi
这样的组合
使用命令行方式运行
查看帮助
代码语言:javascript复制$ flask --help
Usage: flask [OPTIONS] COMMAND [ARGS]...
A general utility script for Flask applications.
Provides commands from Flask, extensions, and the application. Loads the
application defined in the FLASK_APP environment variable, or from a
wsgi.py file. Setting the FLASK_ENV environment variable to 'development'
will enable debug mode.
$ export FLASK_APP=hello.py
$ export FLASK_ENV=development
$ flask run
Options:
--version Show the flask version
--help Show this message and exit.
Commands:
routes Show the routes for the app.
run Run a development server.
shell Run a shell in the app context.
使用下面命令可以运行
代码语言:javascript复制$ export FLASK_APP=hello.py
$ export FLASK_ENV=development
$ flask run