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

推荐订阅源

Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
博客园 - 【当耐特】
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
D
Docker
GbyAI
GbyAI
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
The Cloudflare Blog
雷峰网
雷峰网
A
About on SuperTechFans
小众软件
小众软件
博客园 - Franky
博客园 - 聂微东
F
Full Disclosure
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
Engineering at Meta
Engineering at Meta
宝玉的分享
宝玉的分享
aimingoo的专栏
aimingoo的专栏
量子位
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
罗磊的独立博客
Martin Fowler
Martin Fowler
D
DataBreaches.Net
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Secure Thoughts
Project Zero
Project Zero
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
S
Schneier on Security
Blog — PlanetScale
Blog — PlanetScale
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
Security Latest
Security Latest
NISL@THU
NISL@THU
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
J
Java Code Geeks

Flask

请教一个 flask 枚举数的问题 - V2EX Python flask 项目如何加密打包部署 - V2EX 请教大佬们一个关于 flask 的缓存问题? - V2EX 求大佬看看我这个项目,不会生成数据库文件是怎么回事 - V2EX 吐槽, 用 pycharm 跑 flask 遇到各种空格路径问题... - V2EX celery 启动报错 - V2EX 使用 Flask-SocketIO 与 Android 端实现一套 IM 即时通讯 - V2EX flask 自从加了 https 后程序运行一段时间就没响应了. - V2EX 给算法模型做后端的 flask 在生产部署时是否还需要 Gunicorn+ Gevent - V2EX 求助,关于 Flask-Mail 的大坑。 - V2EX flask 用 sqlalchemy 时,为什么一定要用 flask-sqlalchemy? - V2EX flask 视图之间如何传递 class 实例 ? - V2EX flask 和 fastapi 及 bottle 如何多进程共享认证 token - V2EX 安装 Flask 的时候提示没有 flask 这个 module,无解? - V2EX 大点儿的项目你会选择 flask 开发 api 吗? - V2EX 访问不到运行在 docker 里面的 flask 应用 - V2EX 如何优雅升级 Python web 程序 - V2EX flask_restful json 返回默认 Content-Type 以及中文乱码 - V2EX 关于 Flask-Login 的 user_loader 回调方法的问题 - V2EX FlaskCon 2020 参会指南 - V2EX flask 如何验证 post 提交的 json 数据 - V2EX Flask 的静态资源 URL 的 versioning 目前有官方支持的 best practice 么? - V2EX 光头大叔的 Flask 教程里,全文搜索的部分 def search(cls, expression, page, per_page) , cls 代表什么意思呀?不是太理解 - V2EX 跳转 abc.com/?q=foo 用 Flask-Login 的 next 传参,需要加斜杠吗? - V2EX 小白求助, flask_sqlalchemy 条件查询的一个问题 - V2EX flask 自建服务器 - V2EX Flask 生产环境好难配置 - V2EX 求助,那位同学有看过这个视频 four sqlalchemy tips,可以贴下 Tips 吗? - V2EX 关于 flask 邮箱,微信报警功能可用性监测如何实现的问题 - V2EX excel 批量导入数据库并返回导入情况的问题 - V2EX flask 在使用 redirect 对 url 重定向的时候,怎么传递请求体? - V2EX flask 框架,两个系统都有各自的数据库,两个系统怎么共用彼此的数据库,请问应该怎么实现? - V2EX flask 与 koa - V2EX flask restful abort cross 疑问 - V2EX sqlalchemy 中 column 类型为 list 的情况 - V2EX 关于 Flask 文档 - V2EX 请问 flask 创建多个 app 应用 有什么么用处呢 - V2EX Flask 服务端怎么配置 pjax - V2EX 请问如何添加多个 cookie 值呢 - V2EX flask 缓存插件为什么不维护了?怎么跟 django 的插件维护差距这么大? - V2EX Flask 中 Blueprint 对应的 templates 文件夹位置 - V2EX 用 flask 做了一个论坛 - V2EX Flask 请求头格式问题 - V2EX Flask 通过 win32com 调用 Word 失败,求助 - V2EX 相对导入报错 ValueError: Attempted relative import in non-package - V2EX flask 匿名用户自定义类 AnonymousUser 无法调用 - V2EX flask 官网教程执行 flask init-db 报错 - V2EX 腾讯云 uwsgi 使用 daemonize 参数很容易奔溃 - V2EX 在 flask 中 redis 订阅数据持久化到 mysql 的问题 - V2EX
关于 flask 循环导入的问题?求解释,这个算不算循环导入? - V2EX
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