Flask 是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。
前面已经写过项目从新建运行安装到测试部署的全流程,其中有写Flask框架从新建到部署全流程,但是只有部分代码。本篇主要是实战案例项目的代码运行全流程说明,自己总结的方便查看,也欢迎正在学习的宝子参考,如果有不对的地方,请评论区留言或者私信我,感谢。
完整案例项目源代码已上传至资源!
目录
一、新建项目以及虚拟环境
这里把新建项目以及虚拟环境在写一遍:
这里可以用命令行新建、也可以直接右键新建项目。然后命令行打开文件夹,这里只是举例子,本次项目的项目名称是 flask-tutorial 文件夹。
py -3 -m venv venv # 创建虚拟环境
venv\Scripts\activate # 激活虚拟环境
新建的项目要新建虚拟环境然后激活虚拟环境,对于已经新建过虚拟环境的直接激活虚拟环境就可以了。
后面下载框架或者项目中需要的包运行应用都是在虚拟环境下进行的。
二、项目案例代码部分
一个 Flask应用是一个Flask 类的实例,我们在代码的最开始创建一个全局 Flask 实例。如何创建全局实例呢?可以在一个函数内部创建一个flask实例,然后把这个应用返回,这个函数被称为应用工厂,因为所有应用的相关配置、注册登录和其他设置都是在这一个函数完成的。
1.应用工厂
创建一个 flaskr 文件夹,然后新建 __init__.py文件。应用里面的 SECRET_KEY 变量也就是我们上一篇关于项目打包部署的时候生成密钥的值。
SECRET_KEY 是被 Flask 和扩展用于保证数据安全的。在开发过程中, 为了方便可以设置为 'dev'
,但是在发布的时候应当使用一个随机值来 重载它。
# flaskr/__init__.py 文件代码部分
import os
from flask import Flask
def create_app(test_config=None):
# 创建一个应用实例app
app = Flask(__name__, instance_relative_config=True)
app.config.from_mapping(
SECRET_KEY='dev',
DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
)
if test_config is None:
# load the instance config, if it exists, when not testing
app.config.from_pyfile('config.py', silent=True)
else:
# load the test config if passed in
app.config.from_mapping(test_config)
# ensure the instance folder exists
try:
os.makedirs(app.instance_path)
except OSError:
pass
# a simple page that says hello
@app.route('/hello')
def hello():
return 'Hello, World!'