介绍
这篇文章主要介绍了瓶使用蓝图的作用,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
<强>瓶使用蓝图的作用:专门用来对项目进行模块划分,其次可以解决循环导入问题(如@app.route(“/?,分模块后都用@app,就会出现循环导入)。强>
比如:一个xxx网站,可能用到首页模块,用户模块,后台模块等等。
在项目开发过程中,需要把项目根据相关的功能划分为对应的模块,通过模块的划分可以更好的组织项目的目录结构,使项目的整个框架更加清晰。
蓝图引入 ,,,我们尝试将项目中的新闻视图函数抽离出来作为,news.py ,一个单独的模块 ,,,main.py中: ,,,,,,,得到flask import 瓶 ,,,,,,,得到news import 新闻 ,,,,,,, ,,,,,,,app =,瓶(__name__) ,,,,,,,@app.route (“/? ,,,,,,,def 指数(): ,,,,,,,,,,,return “index" ,,,,,,,,,,, ,,,,,,,@app.route (“/users") ,,,,,,,def 用户(): ,,,,,,,,,,,return “users" ,,,,,,,if __name__ ==,“__main__": ,,,,,,,,,,,app.run (debug=True) ,,,news.py中: ,,,,,,,得到main import 应用 ,,,,,,,@app.route (“/news") ,,,,,,,def 新闻(): ,,,,,,,,,,,return “news"
以上代码运行主要。py会报错,ImportError:不能进口的名字‘新闻’,原因是循环导入问题
蓝图使用步骤: ,,,1,创建蓝图(在news.py中) ,,,,得到flask import 蓝图 ,,,news_blu =,蓝图(“news",, __name__) ,,,2,使用蓝图对象注册路由(在news.py中) ,,,@news_blu.route (“/news") ,,,def 新闻(): ,,,,,,,return “news3" ,,,3,使用应用程序对象注册蓝图(在main.py中) ,才能得到news import news_blu ,,,app.register_blueprint (news_blu)
目录形式的蓝图的注意点: ,,,我们将用户模块处理成一个用户包,包下面有另两个文件__init__ . py,和views.py(专门用来存放这个模块的视图函数):,,, ,,,__init__ . py中 ,,,,得到flask import 蓝图 ,,,users_blu =,蓝图(“users",, __name__) ,,,,得到只import views ,,, #,把视图函数抽取到views.py中之后,需要在__init__ . py文件中导入视图函数所在的这个视图文件 ,,,#,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,,,views.py中: ,,,,得到只import users_blu ,,,#,使用蓝图注册路由 ,,,@users_blu.route (“/users") ,,,def 用户(): ,,,,,,,return “users" ,,,#,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,,,main.py 中: ,才能得到users import users_blu ,,,app.register_blueprint (users_blu)
注意:得到只import xxx 表示从当前文件所在的包中导入xxx模块 蓝图对象参数设置: users_blu =,蓝图(“用户”,名字, static_folder=熬蔡?#,蓝图中静态文件存储目录 static_url_path=?用户/static",, #,访问蓝图中静态文件url地址前缀 template_folder="模板",,#,蓝图中模板文件的存储目录 #,url_prefix=?users", #,统一该模块下资源请求的前缀 )
感谢你能够认真阅读完这篇文章,希望小编分享瓶使用蓝图的作用内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!