Flask 框架快速入门

242 阅读2分钟

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 实例对象配置三种姿势
  1. 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)
  1. 导入配置类
# 与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...去做其他事情
  1. 导入配置文件
# 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 对象的简单介绍"

请求方式包装对象取值
GETargsrequest.args.get('username')
POSTformrequest.form['password']

下一次分享 flask 的高级玩法