码迷,mamicode.com
首页 > 其他好文 > 详细

flask之蓝图系统

时间:2020-01-04 20:48:45      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:蓝图   结构   request   应用程序   reg   efi   import   ==   代码   

蓝图

对程序进行目录结构划分

不使用蓝图,自己分文件

目录结构:

-templates
-views
    -__init__.py
    -user.py
    -order.py
-app.py

app.py

from views import app
if __name__ == '__main__':
    app.run()

init.py

from flask import Flask,request
app = Flask(__name__)
#不导入这个不行
from . import account
from . import order
from . import user

user.py

from . import app
@app.route('/user')
def user():
    return 'user'

order.py

from . import app
@app.route('/order')
def order():
    return 'order'

使用蓝图之中小型系统

详见代码:pro_flask_简单应用程序目录示例.zip

目录结构:

-flask_pro
    -flask_test
        -__init__.py
        -static
        -templates
        -views
            -order.py
            -user.py
     -manage.py 
        

_init.py

from flask import  Flask
app=Flask(__name__)
from flask_test.views import user
from flask_test.views import order
app.register_blueprint(user.us) # 注册应用对象到蓝图中
app.register_blueprint(order.ord)   # 注册应用对象到蓝图中

manage.py

from flask_test import  app
if __name__ == '__main__':
    app.run(port=8008)

user.py

from flask import Blueprint, url_for
us=Blueprint('user',__name__)   # 给蓝图对象取别名,用于反向解析

@us.route('/login')
def login():
    print(url_for("user"))  # 根据蓝图对象别名来进行反向解析
    return 'login'

order.py

from flask import Blueprint
ord=Blueprint('order',__name__) # 给蓝图对象取别名,用于反向解析

@ord.route('/test')
def test():
    return 'order test'

总结:

1 xxx = Blueprint(‘account‘, name,url_prefix=‘/xxx‘) :蓝图URL前缀,表示url的前缀,在该蓝图下所有url都加前缀

2 xxx = Blueprint(‘account‘, name,url_prefix=‘/xxx‘,template_folder=‘tpls‘):给当前蓝图单独使用templates,向上查找,当前找不到,会找总templates

3 蓝图的befort_request,对当前蓝图有效

4 大型项目,可以模拟出类似于django中app的概念

flask之蓝图系统

标签:蓝图   结构   request   应用程序   reg   efi   import   ==   代码   

原文地址:https://www.cnblogs.com/XuChengNotes/p/12149316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!