目录
1.拆分文件配置
一个项目只能有一个核心对象,需要将所有的配置文件、程序都绑定到核心对象上去,如果只用一个文件来写项目,项目管理难度就会很大,采用拆分文件分开管理,需要的时候就i调用的方法就大大降低了管理难度同时也提高了安全性。
1.1.在flask项目下创建一个server.py的文件,这是整个程序的入口文件
1.2在flask项目下创建一个app.py,app.py 创建一个核心对象
from flask import Flask
import os
def create_app(config=None):
app = Flask(__name__)
# 导入config包下面的settings模块里面的配置信息
app.config.from_object('config.settings')
# 根据系统的环境变量,导入不同的配置文件(提高了项目的保密性)
if 'FLASK_CONF' in os.environ:
app.config.from_envvar('FLASK_CONF')
# 通过传递参数的方式加入配置
if config is not None:
# 如果传入的参数是字符串类型的数据
if isinstance(config,dict):
# 就将传入的数据追加到config字典里面去
app.config.update(config)
# 如果config是以.py结尾的文件,就将文件内容传输到config字典里面去
elif config.endwith(".py"):
app.config.from_pyfile(config)
return app
1.3在server.py中导入核心对象
from app import create_app
mjh_app = create_app()
# 将核心对象命名为mjh_app
1.3 新建一个condif文件夹,在config下面创建一个settings.py专门用于存放配置
在settings.py写入我们整个项目的所有配置
# 打开调试模式(不用手动运行项目)
DEBUG = True
# 0.0.0.0 表示所有地址都能访问
HOST = '0.0.0.0'
# 指定端口号为9000,端口号可以随意制定,
# 如果你发现你的端口被占用了就换一个不常用的端口,避免起冲突
PORT = 9000
写好配置后将配置文件绑定到核心对象上面去,server.py
mjh_app.run(
debug=mjh_app.config['DEBUG'],
host=mjh_app.config['HOST'],
port=mjh_app.config['PORT'],
)
1.4绑定路由在server.py里面
# 绑定路由
@mjh_app.route("/")
def index():
return "studinfo / index"
1.5 运行server.py开启项目,查看是否能访问
from app import create_app
mjh_app = create_app()
# 绑定路由
@mjh_app.route("/")
def index():
return "studinfo / index"
mjh_app.run(
debug=mjh_app.config['DEBUG'],
host=mjh_app.config['HOST'],
port=mjh_app.config['PORT'],
)
2.蓝图
blueprint是一个存储操作方法的容器,用于管理路由,当我们的i项目足够大时,靠核心对象来管理路由会变得困难起来。举个例子:如果我们的项目有100个路由需要管理,如果全靠核心对象来对路由进行管理就非常复杂,而且出现错误很难排查,核心对象要做的事情太多了,如果用蓝图的方法,一个蓝图管理十个路由,核心对象就只需要管理十个蓝图,这样工作过难度一下就降低了很多。
2.1在flask项目下创建一个router目录,router下面创建一个student的目录,student目录下面创建一个stuinfo.py的文件
2.2在router下面新建一个__init__.py文件,导入router目录的时候会自动调用ini文件。
2.3 在stuinfo.py文件内,生成看蓝图对象,绑定路由
2.4 修改以前的路由绑定
删除server.py里面的路由绑定信息
在app.py核心对象内导入router模块
2.5 查看运行结果