Flask 框架
用最简洁的话,带你快速上手一门技术
快速上手
- 安装
pip install flask
pip install flask_cors
- 基本使用
from flask import Flask
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
return "Hello world"
# 启动Flask实例应用
if __name__ == '__main__':
app.run()
进阶玩法
Flask实例对象配置三种姿势
- Flask 实例对象上添加属性
from flask import Flask
app = Flask(__name__)
# 在本文件中直接配置
# 更多config的有效配置请在官网查看:https://dormousehole.readthedocs.io/en/latest/config.html#python
app.config['ENV'] = 'development' # 开发者环境,对应的是production
app.config['DEBUG'] = True # 是否开启调试,选择开启
@app.route('/', methods=['GET', 'POST'])
def index():
return "Hello world"
# 启动Flask实例应用
if __name__ == '__main__':
# run() 方法有三个常用配置参数
app.run(host='localhost', port=80, debug=True)
- 导入配置类
# 与app.py同级目录下创建config.py 配置文件
#(配置文件名自定义,比如settings.py等等,自己知道是配置文件就好,这里我就使用见名知意的文件名了)
ENV = 'production'
DEBUG = True
之后在app.py主文件中导入
# 导入自己需要的其他东西 ...
import config
# 在实例化对象之后,加载配置文件
app = Flask(__name__)
app.config.from_object(config)
注意:如果你在配置文件config.py文件中添加了app.config对象内部没有的配置项,是不会生效的!反过来,如果你在config.py中配置了像 HOST = 'localhost' 这种 app.config身上没有的配置属性的话,如果发现项目配置不生效,那么你就要确认该属性在app.config身上是否存在了!切记,切记~~~
类配置方式导入
# config.py
class Config(object):
ENV = 'development'
DEBUG = True
# app.py
# 导入自己需要的其他东西 ...
from config import Config
# 在实例化对象之后,加载配置文件
app = Flask(__name__)
app.config.from_object(Config)
# todo...去做其他事情
- 导入配置文件
# config.py
ENV = 'production'
DEBUG = True
localhost = 'localhost'
port = 80
在 app.py主文件中如下代码:
# app.py
# todo something...
import os
from flask import Flask
app = Flask(__name__)
# 配置方式 (下面的都行,只要能让app找到你的文件即可)
# app.config.from_pyfile(os.path.join(os.getcwd(), 'config.py'))
app.config.from_pyfile(os.path.dirname(__file__) + r'\config.py')
!!!有没有发现上面的比较麻烦,那就还有办法
# app.py
import os
from flask import Flask
# 直接在告诉app实例对象去找配置文件的根路径,之后直接写配置文件名即可
app = Flask(__name__, root_path = os.getcwd())
app.config.from_pyfile('config.py')
# todo something...
- 路由映射视图
# ...
app = Flask(__name__)
# route装饰器第一个参数url,表示浏览器地址栏输入(带上协议、域名、端口号:
# 如http://localhost:5000)地址 / 即可访问该装饰器所装的饰函数对应返回的结果
@app.route('/', methods=['GET', 'POST'])
def index():
return "Hello Index Pages"
# ...
什么?你现在想要接收前端发送过来的数据?
from flask import request
# 参数都封装在这个request对象上,还有对参数的处理方法等都挂载在request身上
# 有更进一步了解的就可以查官方文档了。这里介绍的只是凤毛麟角
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'GET':
username = request.args.get('username')
elif request.method == 'POST':
hobby = request.form['hobby']
return "request 对象的简单介绍"
| 请求方式 | 包装对象 | 取值 |
|---|---|---|
| GET | args | request.args.get('username') |
| POST | form | request.form['password'] |
下一次分享
flask的高级玩法