Flask way to explore https:https://cdn.v2ex.com/navatar/ab81/7c93/467_normal.png?m=1646757794 https:https://cdn.v2ex.com/navatar/ab81/7c93/467_large.png?m=1646757794 2024-09-09T08:21:53Z Copyright © 2010-2018, V2EX 请教一个 flask 枚举数的问题 tag:www.v2ex.com,2024-09-08:/t/1071149 2024-09-08T15:20:53Z 2024-09-09T08:21:53Z nonozone member/nonozone 问了半天 ai 也没解决。

class ApprovalStatus(PyEnum): PENDING = 'pending' APPROVED = 'approved' REJECTED = 'rejected' class Approval(db.Model): id = db.Column(db.Integer, primary_key=True) content_type = db.Column(db.String(50), nullable=False) content_id = db.Column(db.Integer, nullable=False) field_name = db.Column(db.String(50), nullable=False) new_value = db.Column(db.Text, nullable=False) status = db.Column(db.Enum(ApprovalStatus), default=ApprovalStatus.PENDING) submitter_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) submit_time = db.Column(db.DateTime, default=current_time) reviewer_id = db.Column(db.Integer, db.ForeignKey('user.id')) review_time = db.Column(db.DateTime, default=current_time) review_comment = db.Column(db.Text) submitter = db.relationship('User', foreign_keys=[submitter_id]) reviewer = db.relationship('User', foreign_keys=[reviewer_id]) __table_args__ = (db.UniqueConstraint('content_type', 'content_id'),) @property def content(self): model = getattr(models, self.content_type) return model.query.get(self.content_id) 

模型是这样,但是在 flask admin 访问审核这个栏目的时候,总是提示

LookupError: 'pending' is not among the defined enum values. Enum name: approvalstatus. Possible values: PENDING, APPROVED, REJECTED

和解哦。

结果检查,数据库的状态栏的值都是小写的。

]]>
Python flask 项目如何加密打包部署 tag:www.v2ex.com,2024-04-28:/t/1036471 2024-04-28T09:22:41Z 2024-04-28T10:32:37Z guofushan2903 member/guofushan2903 大佬们 ,python flask 项目如何加密打包部署,有何思路

]]>
请教大佬们一个关于 flask 的缓存问题? tag:www.v2ex.com,2024-02-27:/t/1018932 2024-02-27T12:45:19Z 2024-02-27T13:34:23Z turtlekey member/turtlekey 问题复现

我有一个视图函数,它理应在后台获取当日的数据(每天的数据不一样),然后渲染到前端,但访问得到的数据却是上一次访问得到的数据(即它不会自动更新视图),如果我提前在视图渲染函数前 return 一个任意字符串,刷新请求,然后恢复代码,它又成功地更新视图了。

我的猜测

代码逻辑应该没有问题,问题大概率是关于缓存的,不知 flask 是否有自动缓存机制,请大佬解惑。先行感谢🙏。

]]>
求大佬看看我这个项目,不会生成数据库文件是怎么回事 tag:www.v2ex.com,2024-02-04:/t/1013966 2024-02-04T00:06:11Z 2024-02-03T20:06:11Z Windyzhou member/Windyzhou https://github.com/windy003/ppi_made_by_me
]]> 吐槽, 用 pycharm 跑 flask 遇到各种空格路径问题... tag:www.v2ex.com,2023-12-09:/t/998973 2023-12-09T10:11:23Z 2023-12-10T05:23:05Z chackchackGO member/chackchackGO 用 pycharm 跑 flask 遇到各种空格路径问题.
只能用 vscode 来跑. 但是还要同时用 pycharm 来看函数 usages 之类的高级 feature....

]]>
celery 启动报错 tag:www.v2ex.com,2023-11-22:/t/994336 2023-11-22T15:27:44Z 2024-01-07T20:58:03Z cypwanfeng member/cypwanfeng celery 链接阿里云集群版 redis 报错 redis.exceptions.ResponseError: 'BRPOP' command keys must in same slot 求大佬们康康

]]>
使用 Flask-SocketIO 与 Android 端实现一套 IM 即时通讯 tag:www.v2ex.com,2023-11-03:/t/988138 2023-11-03T02:12:44Z 2023-11-03T19:53:40Z googlehub member/googlehub 如题,最近用 Flask-SocketIO 实现一套 api 接口实现与 android 端的逻辑,实现 android 端互相通讯实现一对一聊天,大家有推荐学习的代码或者 demo 之类的吗?

目前自己实现了部分,但是有些细节还有些疑惑,想找个案例来梳理学习下。

大佬们 求推荐相关的资料下。

]]>
flask 自从加了 https 后程序运行一段时间就没响应了. tag:www.v2ex.com,2023-08-02:/t/961884 2023-08-02T09:40:52Z 2023-08-02T14:13:40Z QGabriel member/QGabriel 现在能排除的是与 mongodb 和系统内存没关系.
运行个 4-6 小时请求就无响应了.
麻烦大佬支招排查一下问题~ ]]>
给算法模型做后端的 flask 在生产部署时是否还需要 Gunicorn+ Gevent tag:www.v2ex.com,2023-03-21:/t/925899 2023-03-21T08:53:19Z 2023-05-05T21:47:49Z Oilybear member/Oilybear RT, flask 时一个通常情况下是一个单进单线框架,所以生产一般会还会套一层 Gunicorn + Gevent 来满足并发需求,但是最近在给模型封装 webapi 的时候我萌生疑问:

  1. 对于计算密集型的服务是否还需要 Gunicorn+ Gevent
  2. 对于问题 1 是否需要区分 gpu 部署场景和 cpu 部署场景
]]>
求助,关于 Flask-Mail 的大坑。 tag:www.v2ex.com,2022-10-10:/t/885846 2022-10-10T09:05:52Z 2022-10-12T07:28:06Z kaiger member/kaiger 初始化代码:

app = create_app() # mail client mail = Mail(app) 

配置文件:

# flask_mail MAIL_DEBUG = False MAIL_SUPPRESS_SEND = False MAIL_SERVER = 'smtp.qq.com' MAIL_PORT = 465 MAIL_USE_SSL = True MAIL_USE_TLS = False MAIL_USERNAME = os.getenv("MAIL_USERNAME") or "xxxx@qq.com" MAIL_PASSWORD = os.getenv("MAIL_PASSWORD") or "xxxxxxxxxxx" # QQ 邮箱授权码 

发送邮件代码:

@celery.task def send(mail_from, mail_to, subject="", cOntent="", html=""): try: msg = Message( subject=subject, sender=mail_from, recipients=[mail_to] ) msg.body = content msg.html = html mail.send(msg) except Exception as e: return e.__str__() return "ok" send.delay("xxxx@qq.com", "xxxxx@qq.com", "test", "content") 

错误信息:

(535, b'Login Fail. Please enter your authorization code to login. More information in http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256') 

不知道哪里出了问题,到网上搜了一圈,这个配置没错,就是账户验证失败,就很难受。

]]>
flask 用 sqlalchemy 时,为什么一定要用 flask-sqlalchemy? tag:www.v2ex.com,2022-09-25:/t/882842 2022-09-25T12:17:07Z 2022-09-25T13:16:27Z elboble member/elboble 我的意思是,单独用 sqlalchemy 也可以对数据库操作,还自如一点。 没看出 flask-sqlalchemy 有什么更高层次的封装。

django 和他的 orm 结合紧密,但是 flask 似乎并不是的。

]]>
flask 视图之间如何传递 class 实例 ? tag:www.v2ex.com,2022-09-12:/t/879476 2022-09-12T09:27:06Z 2022-10-26T09:58:14Z kaiger member/kaiger 如题,在其中一个视图实例化一个 class ,如何将这个实例传递到下一个视图?

]]>
flask 和 fastapi 及 bottle 如何多进程共享认证 token tag:www.v2ex.com,2022-03-22:/t/842222 2022-03-22T16:27:16Z 2022-03-23T03:33:18Z qile1 member/qile1
谢谢



我现在使用的方法是,直接 json 保存到本地硬盘文件里面,每次服务器调用就读取一次,判断时间,如果超时就更新并重新写入文件,感觉这样不太合理,用 sqlite 好像多个进程读取也不太合适,其他数据库也有点浪费,用 radis 是不是也有点浪费,大家有没有好办法? window 的注册表可以不?

现在接口调用量每天 12w 次吧 ]]>
安装 Flask 的时候提示没有 flask 这个 module,无解? tag:www.v2ex.com,2021-09-11:/t/801200 2021-09-11T04:01:14Z 2021-09-20T02:09:25Z easonl member/easonl 新手学习 Python 和 搭建 Flask 服务。

按照新手村教程,一开始 pip3 install flask 安装完毕后,运行新手村 HelloWorld 程序,提示 ImportError: No module named 'flask'

于是,pip3 uninstall flask

采用手工安装的方式,git 了 flask 到本地

cd flask 进入目录

执行安装

python3 setup.py install

然后,

提示:ImportError: No module named 'flask'

好吧,我去考驾照,交警告知我没有驾照,所以不允许考驾照……

]]>
大点儿的项目你会选择 flask 开发 api 吗? tag:www.v2ex.com,2020-12-18:/t/736718 2020-12-18T04:20:35Z 2020-12-18T14:38:49Z huichao member/huichao 访问不到运行在 docker 里面的 flask 应用 tag:www.v2ex.com,2020-11-24:/t/728671 2020-11-24T05:00:04Z 2020-11-24T06:05:16Z JasonLaw member/JasonLaw server.py 的关键内容如下:

if __name__ == '__main__': app.run(host='0.0.0.0', port=9000) 

Dockerfile 如下:

FROM python:3.7-buster WORKDIR /app/ COPY ./requirements.txt /app/requirements.txt RUN pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ COPY . /app/ EXPOSE 9000 ENV FLASK_APP=server.py CMD python -m flask run --host=0.0.0.0 -p 9000 

下面这样子可以访问到 localhost:9000 。

docker container run --name user-info-pool-service -d -p 9000:9000 user-info-pool-service 

但是下面这样却不行。

docker container run --network=host --name user-info-pool-service -d user-info-pool-service 

真的好奇怪,为什么呢?

]]>
如何优雅升级 Python web 程序 tag:www.v2ex.com,2020-08-10:/t/696988 2020-08-10T02:39:32Z 2020-08-26T20:04:43Z lixuda member/lixuda 小弟不才,所以求大神。

之前是开源的 php 程序,如果代码升级,操作都是进入后台,打开关闭网站,然后 ftp 上传代码,再打开网站。 网站有一定数量的会员访问。

后来自己用 flask 重写了代码, nginx+gunicorn+flask 部署,代码用 git 拉取, 现在更新网站方式: 代码用 git 拉取,然后 pstree -ap|grep gunicorn kill -HUP PID

感觉很怪异,特来问问大家有什么好方式?谢谢

]]>
flask_restful json 返回默认 Content-Type 以及中文乱码 tag:www.v2ex.com,2020-07-30:/t/694457 2020-07-30T14:44:26Z 2020-08-24T15:49:13Z ropon member/ropon
  • json 返回默认 Content-Type: application/json,非默认 utf-8 编码(比如 Edge 、Safari)浏览器测试中文乱码?
  • login_bp = Blueprint("login_bp", __name__, url_prefix="/api/v1") class LoginView(Resource): @marshal_with(user_fields) def get(self): users = User.query.all() # print(users) return users # return {"code":0 ,"msg": "中文测试"} api.add_resource(LoginView, "/login") 
    ]]>
    关于 Flask-Login 的 user_loader 回调方法的问题 tag:www.v2ex.com,2020-07-14:/t/690025 2020-07-14T11:11:08Z 2020-07-14T14:09:57Z lonisletend member/lonisletend 关于Flask-Loginuser_loader回调方法的问题

    前两天看到 lepture 关于 Flask 项目结构的这篇文章https://lepture.com/en/2018/structure-of-a-flask-project, 动手实践一下, 但是遇到个 Flask-Login 的问题, user_loader方法放在哪儿都不好使, 总是报Exception: Missing user_loader or request_loader. Refer to http://flask-login.readthedocs.io/#how-it-works for more info.

    我认为的是在项目启动之后login_manager已经和app关联了, 所以在 router 中引用的login_manager就可以设置user_loader回调方法了, 但是不管我把它放哪儿, 始终都找不到, 在引用current_user的时候就报错 Exception: Missing user_loader or request_loader. Refer to http://flask-login.readthedocs.io/#how-it-works for more info.

    下面是项目结构, 部分文件截图以及报错信息, 路过的大神麻烦帮忙看看是什么问题.

    麻烦大神们指教或者有什么思路说说, 先谢过.

    ]]>
    FlaskCon 2020 参会指南 tag:www.v2ex.com,2020-07-02:/t/686674 2020-07-02T12:18:15Z 2020-07-02T13:17:15Z greyli member/greyli https://greyli.com/flaskcon-2020-guide/

    FlaskCon 是由社区举办的免费线上 Flask 会议,欢迎参加。

    ]]>
    flask 如何验证 post 提交的 json 数据 tag:www.v2ex.com,2020-07-01:/t/686131 2020-07-01T01:38:16Z 2020-08-23T08:04:08Z nanfangzai member/nanfangzai 大家在使用 flask 时,都是怎么验证 post 提交的 json 数据啊? 我现在都是用 if 来判断各个字段是否符合要求,但是显得代码太不好看了,大家有什么建议吗?

    ]]>
    Flask 的静态资源 URL 的 versioning 目前有官方支持的 best practice 么? tag:www.v2ex.com,2020-04-25:/t/666124 2020-04-25T18:32:00Z 2020-04-26T01:41:55Z Livid member/Livid
    https://flask.palletsprojects.com/en/1.1.x/tutorial/static/

    目前找到的一些实现方式都是第三方的:

    https://pythonhosted.org/Flask-Versioned/

    https://ana-balica.github.io/2014/02/01/autoversioning-static-assets-in-flask/ ]]>
    光头大叔的 Flask 教程里,全文搜索的部分 def search(cls, expression, page, per_page) , cls 代表什么意思呀?不是太理解 tag:www.v2ex.com,2020-04-09:/t/660989 2020-04-09T16:19:43Z 2020-04-09T20:25:03Z miniyao member/miniyao github.com/miguelgrinberg/microblog/blob/master/app/models.py # line 19

    全文搜索的类变量里,传的 cls 是什么意思?不是太理解:

    class SearchableMixin(object): @classmethod def search(cls, expression, page, per_page): ids, total = query_index(cls.__tablename__, expression, page, per_page) if total == 0: return cls.query.filter_by(id=0), 0 when = [] for i in range(len(ids)): when.append((ids[i], i)) return cls.query.filter(cls.id.in_(ids)).order_by( db.case(when, value=cls.id)), total ...... 
    ]]>
    跳转 abc.com/?q=foo 用 Flask-Login 的 next 传参,需要加斜杠吗? tag:www.v2ex.com,2020-02-12:/t/644133 2020-02-12T13:24:45Z 2020-02-12T13:30:12Z miniyao member/miniyao 访问 abc.com/?q=foo 路由,跳登录,然后把路径参数用 next 传进去:

    return redirect(url_for('auth.login', next='?q=foo')) 
    return redirect(url_for('auth.login', next='/?q=foo')) 

    虽然上面两种写法结果都一样,那种写法更符合规范呢?

    ]]>
    小白求助, flask_sqlalchemy 条件查询的一个问题 tag:www.v2ex.com,2020-01-07:/t/635753 2020-01-07T04:52:35Z 2020-04-17T08:01:18Z hosinokamui member/hosinokamui flask 自建服务器 tag:www.v2ex.com,2019-12-24:/t/631843 2019-12-24T05:55:13Z 2019-12-24T06:31:01Z xiaojiantao member/xiaojiantao 需求:在 linux 上用 flask 搭建一个静态服务器(视频较多)(因为验证方式比较独特,还需要加解密什么的,所以没法用 nginx 啥的)

    用途:放在网站上使用 video 标签播放

    问题:video 标签的 html 播放似乎都是在边加载边播放,还可以跳进度什么的。浏览器是怎么请求服务器的?我应该在服务器上怎么这样的程序?是断点续传那样加载的吗?

    ]]>
    Flask 生产环境好难配置 tag:www.v2ex.com,2019-12-17:/t/629944 2019-12-17T13:40:12Z 2019-12-18T16:51:59Z HTSdTt3WygdgQQGe member/HTSdTt3WygdgQQGe 配了一天了,又是 nginx 又是 uWSGI 又是 Gunicorn,大佬可有 Docker 一键部署的环境

    ]]>
    求助,那位同学有看过这个视频 four sqlalchemy tips,可以贴下 Tips 吗? tag:www.v2ex.com,2019-11-10:/t/618078 2019-11-10T03:40:16Z 2019-11-10T06:38:41Z miniyao member/miniyao youtu.be/5-4W3m5gRAs

    今天的梯子挂了,国内好像还没搜到这个视频的搬运 ]]>
    关于 flask 邮箱,微信报警功能可用性监测如何实现的问题 tag:www.v2ex.com,2019-08-21:/t/593860 2019-08-21T07:04:16Z 2020-01-08T04:09:49Z darkerrry member/darkerrry 萌新提问:最近在用 flask 写微信,邮箱报警的功能,就是出故 bug 以后要用微信或者邮箱将错误发送到相对应的接收方。写完之后要做个可用性监测,也就是定时(比如每 5 秒)执行这些任务(不发送邮件但是运行),一旦出现报错也要发送信息。 我的问题是如何定时发送请求,程序需要发起请求后才能发送邮件和微信。我的想法是将发起请求的命令行写到服务器的函数里面,一旦启动服务器就运行程序,实现之后用多线程运行,并用 sleep 函数对他们定时。

    ]]>
    excel 批量导入数据库并返回导入情况的问题 tag:www.v2ex.com,2019-08-15:/t/592021 2019-08-15T02:03:09Z 2019-08-21T21:04:32Z admingyu member/admingyu Flask 后端开发,现在公司有个需求是将 excel 表内的数据导入到数据库(字段不是一一对应的,有些字段不需要),要求返回导入成功数量,导入失败数量,以及具体哪几条数据导入失败,成功的数据要入库。

    目前的方法是: sqlalchemy + xlrd

    1. 导入数据库用db.session.bulk_insert_mappings()
    2. 检查哪几条数据不成功用的是把数据查出来和 excel 内的数据做对比

    -- 但是感觉 2 这样做好蠢,不知道有没有什么更好的方法,有人分享下吗

    ]]>
    flask 在使用 redirect 对 url 重定向的时候,怎么传递请求体? tag:www.v2ex.com,2019-07-25:/t/586092 2019-07-25T04:51:17Z 2019-07-26T01:52:56Z kayseen member/kayseen 请教大家 flask 的重定向(不使用 url_for 重定向): 如下: 视图函数 A 的 url 为"127.0.0.1:8000/A",它接受通过 post 传递过来的参数为{"name":"jay"}; 视图函数 B 的 url 为"127.0.0.1:8000/B"; 请问怎么在视图函数 A 中使用 redirect 重定向到 B 的 url,同时将 A 通过请求体接受的参数也传递给 B,在视图函数 B 中使用这个参数?

    ]]>
    flask 框架,两个系统都有各自的数据库,两个系统怎么共用彼此的数据库,请问应该怎么实现? tag:www.v2ex.com,2019-07-24:/t/585877 2019-07-24T09:47:00Z 2019-07-24T14:10:12Z kayseen member/kayseen 比如有两个系统: A 系统和 B 系统; A 系统里面保存的是班级信息数据库; B 系统里面保存的是学生信息数据库; 然后 A 系统部署在一个端口,B 系统部署在一个端口; 但是需要在 A 系统查询和修改 B 系统的数据库, 请问这种需求可以实现吗?

    ]]>
    flask 与 koa tag:www.v2ex.com,2019-07-15:/t/583245 2019-07-15T14:10:20Z 2019-07-15T13:10:20Z i80vs20 member/i80vs20 flask 与 koa,设计理念真的比较像,都是非常简洁的内核,其它功能都是以插件的形式引入,完美。

    ]]>
    flask restful abort cross 疑问 tag:www.v2ex.com,2019-07-06:/t/580577 2019-07-06T06:21:16Z 2019-07-06T11:22:25Z ropon member/ropon flask_restful.abort = api_abort def api_abort( httpcode=400, errcode=None, message=None, key=""): res = BaseResponse() res.errcode = errcode or 4011 if message: res.errmsg = message else: res.errmsg = key + codetype.get(res.errcode) res.dict.pop('data') if httpcode == 200: print(123456, res.dict) return jsonify(res.dict), httpcode return abort( httpcode, **res.dict)
    @app.after_request def after_request(response): # 允许跨域 response.headers.add('Access-Control-Allow-Origin', '*') if request.method == 'OPTIONS': response.headers['Access-Control-Allow-Methods'] = 'POST, DELETE, PUT, GET' headers = request.headers.get('Access-Control-Request-Headers') if headers: response.headers['Access-Control-Allow-Headers'] = headers return response 

    当 return abort( httpcode, **res.dict) 状态码 400 提示跨域 image

    ]]>
    sqlalchemy 中 column 类型为 list 的情况 tag:www.v2ex.com,2019-06-24:/t/576816 2019-06-24T02:34:26Z 2019-06-24T15:13:36Z hanssx member/hanssx 现有一个需求,table 中某 column (假定为 col_a )有多个顺序递增的日期(不确定列表中到底有多少个日期,所以不能固定的构造 N 个字段来存),我可以把 col_a 的类型设置成 string 或者 pickle (这个存储类型不重要)。

    在构造查询条件的时候,会传入一个 begin_time 和 end_time,查询 col_a 中是否有某个时间在 begin_time 和 end_time 之间,如果有,条件成立,否则条件不成立。

    正常来说,如果 col_a 是一个日期,sqlalchemy 中用 between 就可以了,但是现在 col_a 是一个有多个递增日期的列表,原生 sql 我都想不出来怎么写,sqlalchemy 是不是也没法直接写出来。

    目前能想到的就是先取出所有 table 的记录,遍历一遍 col_a 列,把所有满足条件的记录存储成一个临时表,然后在临时表的基础上再构造其他查询条件。

    还有其他方案吗?(感觉这个有点蛋疼,我愿意为知识付费 20 元。

    ]]>
    关于 Flask 文档 tag:www.v2ex.com,2019-06-20:/t/575889 2019-06-20T08:47:49Z 2019-06-21T01:48:13Z madpecker009 member/madpecker009 https://dormousehole.readthedocs.io/en/latest/quickstart.html#id13 大佬们这个就是 flask 的官方文档么?为什么感觉好少啊。。。我是不是看到了假的。。自己刚从 php 转到 python。。看了这个框架的文档。。感觉。。好少啊

    ]]>
    请问 flask 创建多个 app 应用 有什么么用处呢 tag:www.v2ex.com,2019-06-07:/t/571738 2019-06-07T02:40:43Z 2019-08-22T01:47:15Z Wallace007 member/Wallace007 如题,flask 程序必须要创建一个 app 实例,这是为了可以创建多个 app,但是这样创建多个 app 有什么用呢,一个难道不够吗

    ]]>
    Flask 服务端怎么配置 pjax tag:www.v2ex.com,2019-05-26:/t/567795 2019-05-26T08:19:33Z 2019-05-26T06:16:33Z eagleweb member/eagleweb 请问如何添加多个 cookie 值呢 tag:www.v2ex.com,2019-05-07:/t/562011 2019-05-07T15:18:24Z 2019-05-07T16:33:12Z Wallace007 member/Wallace007 例如一个 python flask 程序的返回: .... return "hello word", 200, {"Set-Cookie":"name=Wallace"}

    第一、我想再添加一个 age=18 的 cookie 值,该怎么做呢(多个 cookie ) 第二、如何在名为 name 的 cookie 里添加多个关键字的值呢,比如:name={uuu “:28,” ttt “:34}这种的(一个 cookie 里多个值)

    ]]>
    flask 缓存插件为什么不维护了?怎么跟 django 的插件维护差距这么大? tag:www.v2ex.com,2019-03-23:/t/547740 2019-03-23T08:03:25Z 2019-04-05T19:05:36Z Hopetree member/Hopetree 我想试试 flask 用 Redis 做缓存,然后上 GitHub 搜索缓存的插件,发现了 2 个,星星数量也太低了吧,最重要的是第一个是使用最多的,但是跟新居然停留在了 7、8 年前,现在 python3 使用会报错,需要改源码才能用这才是最可怕的(所以肯定不会用这个)。第二个flask_caching 倒是跟新的比较好,使用也很 OK,但是我很奇怪的是,难道大家都不用第三方的插件作为缓存吗,为什么星星都这么少?

    补充 是不是直接使用的自带的缓存?我发现自带的也是可以用的,完全 OK

    from werkzeug.contrib.cache import RedisCache 

    cache

    ]]>
    关于 flask 循环导入的问题?求解释,这个算不算循环导入? tag:www.v2ex.com,2019-03-22:/t/547346 2019-03-22T03:46:48Z 2019-03-22T04:07:29Z Hopetree member/Hopetree 看到一个 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

    ]]>
    Flask 中 Blueprint 对应的 templates 文件夹位置 tag:www.v2ex.com,2019-03-13:/t/544352 2019-03-13T16:15:13Z 2019-04-10T15:56:36Z saulshao member/saulshao 我了解组织一个 flask 项目的时候,Blueprint 是比较合适的方法。
    文件夹的一种结构大概如下:
    Approot/
    -------BP1/
    -----------init.py
    -----------models.py
    -----------routes.py
    -----------templates/
    --------------------BP1TPL1.html
    --------------------BP1TPL2.html
    -------BP2/
    -----------init.py
    -----------models.py
    -----------routes.py
    -----------templates/
    --------------------BP2TPL1.html
    --------------------BP2TPL2.html
    另外一种结构如下:
    Approot/
    -------BP1/
    -----------init.py
    -----------models.py
    -----------routes.py
    -------BP2/
    -----------init.py
    -----------models.py
    -----------routes.py
    -------templates/
    ----------------BP1/
    --------------------BP1TPL1.html
    --------------------BP1TPL2.html
    ----------------BP2/
    --------------------BP2TPL1.html
    --------------------BP2TPL2.html
    假设 Blueprint 是可以由不同的开发者分别开发,最后再注册到整个系统中,那么我觉得第一种文件夹结构更合理。理由是我如果需要新增一个 blueprint,直接复制整个子文件夹过来,然后注册就行了。如果是第二种,还要考虑 templates 文件夹的位置之类的。
    我想请教一下有实际经验的开发者(在下没有),各位倾向于哪种文件夹结构?为什么?
    实际上不只是 Template,还有 assests 文件夹等等

    ]]>
    用 flask 做了一个论坛 tag:www.v2ex.com,2019-02-24:/t/538224 2019-02-24T11:44:30Z 2019-04-18T20:51:42Z baichen99 member/baichen99 用 flask 做了一个论坛

    github 地址: https://github.com/baichen99/WeSHU

    demo 地址: http://39.108.119.41/

    flask 只学了一个多月, 前端基本不会, 肯定是存在很多问题的, 希望大家能提点建议

    ]]>
    Flask 请求头格式问题 tag:www.v2ex.com,2019-01-07:/t/524601 2019-01-07T05:40:14Z 2019-01-08T03:12:22Z feihuxiongdi member/feihuxiongdi 使用如下代码获取请求头中的数据,拿不到值(客户端也使用access_token

    access_token=request.header.get_all("access_token") 

    使用如下代码获取请求头中的数据,可以拿到值(客户端也使用access-token

    access_token=request.header.get_all("access-token") 

    Servlet.net Core 中都可以使用下划线格式的请求头名称,为什么 Flask 不可以,是需要额外配置吗?

    请问这是为什么?

    ]]>
    Flask 通过 win32com 调用 Word 失败,求助 tag:www.v2ex.com,2019-01-06:/t/524454 2019-01-06T14:19:25Z 2019-01-06T08:26:09Z JerryV2 member/JerryV2 如题,目的是通过 Flask 获取 Word 文件内容,格式可能是 .doc 或者 .docx

    在 Flask 内通过 win32com 调用 Word 就会失败,不通过 Flask 就能正常调用。

    应该是权限的原因吧? 应该怎么办?

    第一次用 Flask,请大神轻拍~

    ]]>
    相对导入报错 ValueError: Attempted relative import in non-package tag:www.v2ex.com,2018-12-03:/t/514011 2018-12-03T15:16:51Z 2018-12-03T11:16:51Z sprinkle member/sprinkle 在模型中使用 from . import db, login_manager 这种相对导入,flask 运行报错 ValueError: Attempted relative import in non-package 后来全改用绝对导入了。想请问下什么原因

    ]]>
    flask 匿名用户自定义类 AnonymousUser 无法调用 tag:www.v2ex.com,2018-12-01:/t/513257 2018-12-01T01:48:17Z 2018-11-30T08:10:13Z sprinkle member/sprinkle model 中自定义了 AnonymousUser 类:

    class MyAnonymousUser(AnonymousUserMixin):

    def can(self, permissions): return False def is_administrator(self): return False 

    login_manager.anonymous_user = MyAnonymousUser

    在视图函数中使用了 can 方法:

    @main.route('/', methods=['GET', 'POST'])

    def index():

    form = PostForm() if current_user.can(Permission.WRITE_ARTICLES) and form.validate_on_submit(): post = Post(body=form.body.data, author=current_user._get_current_object()) 

    结果运行出现'AnonymousUserMixin' object has no attribute 'can'的错误,请问下问题出在哪里?登录用户能够正常调用角色验证方法。

    ]]>
    flask 官网教程执行 flask init-db 报错 tag:www.v2ex.com,2018-11-20:/t/509799 2018-11-20T14:35:04Z 2018-11-20T12:35:04Z duzhonglin member/duzhonglin __init__.py 文件
    # -*- coding = utf-8 -*-

    import os
    from flask import Flask


    def create_app(test_cOnfig=None):
    app = Flask(__name__, instance_relative_cOnfig=True)
    app.config.from_mapping(
    SECRET_KEY='dev',
    DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite')
    )

    if test_config is None:
    app.config.from_pyfile('config.py', silent=True)
    else:
    app.config.from_mapping(test_config)

    try:
    os.makedirs(app.instance_path)
    except OSError:
    pass

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

    from . import db
    db.init_app(app)
    return app

    db.py 文件

    # -*- coding=utf-8 -*-

    import sqlite3
    import click
    from flask import current_app, g
    from flask.cli import with_appcontext


    def get_db():
    if 'db' not in g:
    g.db = sqlite3.connect(
    current_app.config['DATABASE'],
    detect_types=sqlite3.PARSE_DECLTYPES
    )
    g.db.row_factory = sqlite3.Row
    return g.db


    def init_db():
    db = get_db()
    with current_app.open_resource('schema.sql') as f:
    db.executescript(f.read().decode('utf8'))


    @click.command('init-db')
    @with_appcontext
    def init_db_command():
    init_db()
    click.echo('Initialized the database.')


    def close_db(e=None):
    db = g.pop('db', None)
    if db is not None:
    db.close()

    def init_app(app):
    app.teardown_appcontext(close_db)
    app.cli.add_command(init_db_command)

    目录结构:
    flaskr/
    __init__.py
    db.py
    schema.sql

    FLASK_APP, FLASK_ENV 都已经设置,flask run 运行是正常的,无报错。执行 flask init-db 报错提示找不到这个命令:Error: No such command "init-db". 请问各位大神是什么原因啊,我网上的方法都试了解决不呢? ]]>
    腾讯云 uwsgi 使用 daemonize 参数很容易奔溃 tag:www.v2ex.com,2018-11-18:/t/508965 2018-11-18T08:04:06Z 2018-11-18T11:22:28Z yezhiye member/yezhiye 主机是腾讯云之前活动上的成都的车,1 核 1G,严格按照 https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-16-04 部署 (跟这篇帖子差不多: t/386228 ),能正常使用。想查看 uwsgi 日志,在 uwsgi.ini 加上 daemonize 参数打日志到本地后,每次启动后 20 秒内 uwsgi 服务就会奔溃,情况跟 do 下面的跟帖差不多。求教大佬这是哪方面引起的问题。计算机爱好者,希望能通俗点,谢谢!

    ]]>
    在 flask 中 redis 订阅数据持久化到 mysql 的问题 tag:www.v2ex.com,2018-11-16:/t/508439 2018-11-16T03:17:57Z 2018-12-15T12:56:33Z ingin member/ingin 现在有一个 flask 项目,写了一个下任务的接口,下完任务需要调用第三方接口去做一个诊断服务,诊断完毕后会把结果推送到 redis 上,我需要订阅 redis 的 channel 来监控数据,所以我写了一个工具方法来监控这个 redis 的数据变化,监控到数据变化就持久化到 mysql,可是使用 gunicorn 来开四个进程跑 flask 服务的时候会同时写入 mysql 四条数据,总不能为了监控 redis 数据就只能使用一个进程来跑服务吧。

    ]]>
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86