1.flask关于蓝图的注册
2019-03-26 本文已影响0人
记事本的记事本
flask框架。haha感觉比django舒服很多没有太大的约束性
本教程适合以前做过flask的使用者观看。。反正我也是随便写 ,附着代码 有意见欢迎提
在flask里面如果有多个url路径需要注册,如果将代码写到一个文件里面势必会导致维护性差,可读性差那么蓝图给我们提供了便利
讲个故事
一个父亲有三个儿子分别命名为v1,v2,v3
那么父亲相当于app在flask中
那么 v1,v2,v3就相当于蓝图
例如V1是房地产开发商
V2是雨伞供应商
V3是蔬菜种植商
姑且就那么认为吧
蓝图所能提供的功能是
可以通过父亲-儿子-找到对应的商品,当然不同蓝图也可以
下面举例不用蓝图:相当于从父亲底下挨个寻找商品,本来想买房子的,确经过了一波三折才找到...卖蔬菜的确找到了买雨伞的,非常的不规范
而使用蓝图后,可以给每个儿子划分一条街道,当消费者在购买时直接就可以找到与之对应的商品,而开发者在开发时可以一目了然的看到每个街道是干什么从而划分确定的功能
好了故事讲完了,那么我们用故事的伪代码实现
父亲=flask(__父亲__)
父亲.route('/菜地买菜')
def 去菜地():
print('caidi')
父亲.route('/买房')
def 去菜地():
父亲.route('/买伞')
def 去菜地():
父亲.route('/买黄花菜')
def 去菜地():
父亲.route('/买二层楼')
父亲.route('/买黑雨伞')
def 去菜地():
.....
当随着项目的增加 那么这种会越来乐多 造成项目的混乱
分类的代码放下面了,自己类比就好了
1.首先用pycharm创建flask项目后
2.在项目主文件夹建立一个app文件夹,
如图所示
1.png
3.如上图所示在app下的init文件夹输入以下代码
from flask import Flask
def create_app():
app =Flask(__name__)
app.config.from_object('app.setting')
register_blueprints(app)
return app
def register_blueprints(app):
from app.chang import chang
app.register_blueprint(chang)
在chang的文件夹init下输入
from flask import Blueprint
chang = Blueprint('chang','__name__')
from app.chang import auth
在chang的auth文件夹下输入
from app.chang import chang
@chang.route('/hello')
def hello():
return "嘻嘻嘻"
现在运行这个项目就可以访问helloword了
dzc文件下输入
from app import create_app
app = create_app()
if __name__ == '__main__':
app.run()
项目源码已传到https://github.com/GoKey/flasktest/tree/master/mybeststudy1