惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
J
Java Code Geeks
博客园 - 聂微东
量子位
C
Check Point Blog
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
B
Blog
罗磊的独立博客
腾讯CDC
GbyAI
GbyAI
博客园 - 【当耐特】
A
About on SuperTechFans
M
MIT News - Artificial intelligence
U
Unit 42
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队

Flask

请教一个 flask 枚举数的问题 Python flask 项目如何加密打包部署 请教大佬们一个关于 flask 的缓存问题? 求大佬看看我这个项目,不会生成数据库文件是怎么回事 吐槽, 用 pycharm 跑 flask 遇到各种空格路径问题... celery 启动报错 使用 Flask-SocketIO 与 Android 端实现一套 IM 即时通讯 flask 自从加了 https 后程序运行一段时间就没响应了. 给算法模型做后端的 flask 在生产部署时是否还需要 Gunicorn+ Gevent 求助,关于 Flask-Mail 的大坑。 flask 用 sqlalchemy 时,为什么一定要用 flask-sqlalchemy? flask 视图之间如何传递 class 实例 ? flask 和 fastapi 及 bottle 如何多进程共享认证 token 安装 Flask 的时候提示没有 flask 这个 module,无解? 大点儿的项目你会选择 flask 开发 api 吗? 访问不到运行在 docker 里面的 flask 应用 如何优雅升级 Python web 程序 flask_restful json 返回默认 Content-Type 以及中文乱码 关于 Flask-Login 的 user_loader 回调方法的问题 FlaskCon 2020 参会指南 flask 如何验证 post 提交的 json 数据 Flask 的静态资源 URL 的 versioning 目前有官方支持的 best practice 么? 光头大叔的 Flask 教程里,全文搜索的部分 def search(cls, expression, page, per_page) , cls 代表什么意思呀?不是太理解 跳转 abc.com/?q=foo 用 Flask-Login 的 next 传参,需要加斜杠吗? 小白求助, flask_sqlalchemy 条件查询的一个问题 flask 自建服务器 Flask 生产环境好难配置 求助,那位同学有看过这个视频 four sqlalchemy tips,可以贴下 Tips 吗? 关于 flask 邮箱,微信报警功能可用性监测如何实现的问题 excel 批量导入数据库并返回导入情况的问题
关于 flask 循环导入的问题?求解释,这个算不算循环导入?
Hopetree · 2019-03-22 · via Flask

看到一个 flask 项目,结构看的我非常喜欢,所以在学习。但是关于注册蓝图的操作我有点不理解,如下:

项目结构(部分)

--app
  --auth
     __init__.py
     views.py
--run.py

然后我看到auth.__init__.py这样注册蓝图

from flask import Blueprint

auth = Blueprint('auth', __name__)

from . import views

而在auth.views.py中又引用了 auth

from . import auth

@auth.route('/unconfirmed')
def unconfirmed():
    if current_user.is_anonymous or current_user.confirmed:
        return redirect(url_for('main.index'))
    return render_template('auth/unconfirmed.html')

我的理解是这两个文件里面在循环调用 auth 这个蓝图,这样做真的可以吗(当然运行没问题,我问的可以是这样的引用方式是否合理?)

说说我的做法,我在 views 里面不会引用 auth,而是这是一个函数,传入 auth,然后__init__.py中引入这个函数来注册蓝图

#__init__.py
from flask import Blueprint
from .views import init_blueprint

bp = Blueprint('main', __name__)


def init_app(app):
    init_blueprint(bp)
    app.register_blueprint(bp)

#views.py
from flask import jsonify, current_app


def index():
    return ''


def init_blueprint(bp):
    bp.add_url_rule('/', 'home', index)

我这样做主要是避免循环引入,求解释上面的那个代码算不散循环导入?这 2 个方式最大的区别在于第一种可以使用装饰器,第二种只能使用 add_url_rule 去注册路由

项目源码: https://github.com/miguelgrinberg/flasky/blob/master/app/auth/views.py