「Flask笔记」 蓝图

栏目: Python · 发布时间: 5年前

内容简介:蓝图可以用来将项目分块,使项目结构更清晰,方便项目管理主如果希望蓝图下所有域名有个前缀,入

flask -- 蓝图

使用蓝图

蓝图可以用来将项目分块,使项目结构更清晰,方便项目管理

#test/blue.py
from <a href="https://www.miaoroom.com/tag/flask" data-toggle="tooltip" title="查看更多关于 flask 的文章" target="_blank">flask</a> import Blueprint

test = Blueprint('test',__name__)


@test.route('/test/')
def hello_word():
    return 'hello__world'

app 文件注册蓝图

from <a href="https://www.miaoroom.com/tag/flask" data-toggle="tooltip" title="查看更多关于 flask 的文章" target="_blank">flask</a> import Flask
from test.blue import test

app = Flask(__name__)
app.register_blueprint(test)

@app.route('/')
def hello_world():
    return  'Hello World!'


if __name__ == '__main__':
    app.run()

如果希望蓝图下所有域名有个前缀,入 /user/test/ 可以指定 url_prefix 参数

test = Blueprint('test',__name__,url_prefix='/user') 
#注意url_prefix后面没有 / 如果这里加了 / , 那么再注册url的时候前面不要加。即 @app.route('test/')否则路径会出现两个 /

蓝图使用模板

普通使用方法和 app 下使用的方法一样

@test.route('/test/')
def hello_word():
    return render_template('test.html')

还可以给蓝图指定模板文件的路径,可以是相对路径或者绝对路径

test = Blueprint('test',__name__,url_prefix='/user',template_folder='blup_template')

这两种方法会优先从 template 模板中寻找

蓝图中使用静态文件

如果使用url_for('static')来加载,那么就只会在 app 制定的静态文件夹下查找

如果指定蓝图的名字, test.static ,那么就就再蓝图指定的 static_folder 下查找静态文件

test = Blueprint('test',__name__,url_prefix='/user',static_folder='test_static')

蓝图下 url_for 反转url的注意事项

from flask import Flask,url_for
from sql.blue import test

app = Flask(__name__)
app.register_blueprint(test)

@app.route('/')
def hello_world():
    print(url_for('test.hello_word'))
    return  'Hello World!'


if __name__ == '__main__':
    app.run()

要在反转url的函数名前添加蓝图名称

同理再模板文件中反转url是一致的

子域名的实现

#app.py
from flask import Flask,url_for
from blue.cms import cms

app = Flask(__name__) 
app.config['SERVER_NAME'] = 'test.com:5000'
#设置了这个就不能通过127.0.0.1:5000来访问flask服务器了
app.register_blueprint(cms)

@app.route('/')
def hello_world():
    return  'Hello World!'


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

cms = Blueprint('cms',__name__,subdomain='cms')


@cms.route('/')
def index():
    return 'cms index'

这样运行后还不能访问,因为 flask 不支持 ip地址 的子域名,需要修改 hosts 文件,我这里把 127.0.0.1 映射到 test.com , cms.test.com 这样 cms.test.com , test.com 都可以成功访问,实现子域名。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数字乌托邦

数字乌托邦

尼古拉斯•卡尔 / 姜忠伟 / 中信前沿出版社 / 2018-5 / 69.00

当下,技术与我们的关系变得越来越紧密不可分割,特别是智能手机等设备的出现,带给整个人类社会一场彻底的变革。的确,智能手机上的各种应用程序让我们的工作生活无比便利:社交媒体让我们能够和他人实时保持联络并传输信息,不再受时间、地点的限制;搜索引擎通过精准的算法将我们所需要的信息整合推送至屏幕上,让我们毫不费力就看到自己想要的;地图软件为我们的出行提供了更多路线选择,甚至可以使用语音导航,帮助我们顺利到......一起来看看 《数字乌托邦》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具