我正在使用Flask-uploads将文件上传到我的 Flask 服务器。允许的最大大小是通过使用设置的flaskext.uploads.patch_request_class(app, 16 * 1024 * 1024)。
我的客户端应用程序(一个单元测试)使用请求来发布一个很大的文件。
我可以看到我的服务器返回一个带有 status 的 HTTP 响应413: Request Entity Too Large。但是客户端在请求代码中引发异常
ConnectionError: HTTPConnectionPool(host='api.example.se', port=80): Max retries exceeded with url: /images (Caused by <class 'socket.error'>: [Errno 32] Broken pipe)
Run Code Online (Sandbox Code Playgroud)
我的猜测是服务器断开接收套接字并将响应发送回客户端。但是当客户端收到损坏的发送套接字时,它会引发异常并跳过响应。
问题:
更新
这是一个重现我的问题的简单示例。
服务器.py
from flask import Flask, request
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 1024
@app.route('/post', methods=('POST',))
def view_post():
return request.data
app.run(debug=True) …Run Code Online (Sandbox Code Playgroud) 我有一个多租户设置,我想将某些客户特定信息,特别是request.host传递给芹菜任务,理想情况下,它应该在全局变量中可用.有没有办法以对应用程序透明的方式设置它?
任务将以相同的方式调用:
my_background_func.delay(foo, bar)
Run Code Online (Sandbox Code Playgroud)
任务的定义方式相同,只是它可以访问名为'request'的全局变量,该变量具有属性'host':
@celery_app.task
def my_background_func(foo, bar):
print "running the task for host:" + request.host
Run Code Online (Sandbox Code Playgroud) 有人可以告诉我在flask-security的密码重置令牌中发生的事情吗?代码在github上:
https://github.com/mattupstate/flask-security/blob/develop/flask_security/recoverable.py
(目录中可能还有其他部分.)
我对正在发生的事情的理解:
那是对的吗?
也:
我最特别地对generate_password_reset函数感到困惑
data = [str(user.id), md5(user.password)]
return _security.reset_serializer.dumps(data)
和
get_token_status(token, 'reset', 'RESET_PASSWORD') 功能里面 reset_password_token_status(token)
比如这样,是否有必要使用key_prefix?
@cache.cached(timeout=50, key_prefix='all_comments')
def get_all_comments():
comments = do_serious_dbio()
return [x.author for x in comments]
cached_comments = get_all_comments()
Run Code Online (Sandbox Code Playgroud)
在文档中,它表示key_prefix默认值是request.path cache_key.:什么cache_key意思,我该如何使用它?怎么key_prefix办?
我正在尝试使用 Flask 中的“应用程序工厂”模式,但我的模型似乎存在先有鸡还是先有蛋的问题。http://flask.pocoo.org/docs/patterns/appfactories/
我在 create_app 函数中导入我的视图,该函数导入我的模型。所以,当我的模型被定义时,我在应用程序中没有配置。这通常很好,使用绑定键,我可以设置模型以连接到不同的数据库。
但是,在这种情况下,我有两组模型,一组来自默认数据库,另一组来自另一个数据库连接 - 我想跨数据库连接。我知道通常的方法是添加
__table_args__ = { 'schema' : 'other_db_name' }
Run Code Online (Sandbox Code Playgroud)
到我的“其他数据库”模型。
但是...根据配置,'other_db_name' 可能会有所不同。
所以,现在我定义了需要来自配置的架构名称的模型,但没有来自配置的架构放入类定义中。我也可能只是在烧瓶中遗漏了一些我不知道的东西。
(旁注 - 一个简单的解决方法是将 Sqlalchemy 配置为始终在查询中输出架构名称,无论如何 - 但我似乎无法为此找到设置。)
如果有人对此有任何意见,我将非常感激。谢谢!
我正在使用Python 3.5.1/Window 8.1
>> pip install -e git://github.com/kvesteri/flask-storage.git#egg=Flask-Storage
这是结果:
Obtaining Flask-Storage from git+git://github.com/kvesteri/flask-storage.git#egg=Flask-Storage
Updating c:\users\rodolfo\desktop\dumppython\flask\venv\src\flask-storage clone
Requirement already satisfied: Flask>=0.7 in c:\users\rodolfo\desktop\dumppython\flask\venv\lib\site-packages (from Flask-Storage)
Requirement already satisfied: boto>=2.5.2 in c:\users\rodolfo\desktop\dumppython\flask\venv\lib\site-packages (from Flask-Storage)
Collecting python-cloudfiles>=1.7.10 (from Flask-Storage)
Using cached python-cloudfiles-1.7.11.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\Rodolfo\AppData\Local\Temp\pip-build-t2cefnr2\python-cloudfiles\setup.py", line 6, in <module>
from cloudfiles.consts import __version__
File "C:\Users\Rodolfo\AppData\Local\Temp\pip-build-t2cefnr2\python-cloudfiles\cloudfiles\__init__.py", line 82, in <module>
from cloudfiles.connection import Connection, ConnectionPool
File "C:\Users\Rodolfo\AppData\Local\Temp\pip-build-t2cefnr2\python-cloudfiles\cloudfiles\connection.py", …Run Code Online (Sandbox Code Playgroud) 我正在寻找python用户/组管理包.(创建用户组并添加/删除该组的成员)我发现了flask_dashed.
https://github.com/jeanphix/Flask-Dashed/
Run Code Online (Sandbox Code Playgroud)
它或多或少是我想要的.但它只支持一个用户添加/删除组.有没有人知道python-flask世界中可用的其他类似包装是什么?
烧瓶初学者在这里.我有一个使用以下型号的Flask应用程序:
class Question(db.Model):
__tablename__ = 'questions'
id = db.Column(db.Integer, primary_key=True)
text = db.Column(db.String, nullable=False)
class Answer(db.Model):
__tablename__ = 'answers'
id = db.Column(db.Integer, primary_key=True)
text = db.Column(db.String, nullable=False)
question_id = db.Column(db.Integer, db.ForeignKey('questions.id'))
question = db.relationship("Question", backref="answers")
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中使用以下行启动管理员:
admin = Admin(app)
admin.add_view(ModelView(Question, db.session))
admin.add_view(ModelView(Answer, db.session))
Run Code Online (Sandbox Code Playgroud)
现在在答案模型的创建表单中,我有一个问题的下拉框,但它没有正确填充:

该快速入门指南不包括与外键关系模型,虽然有一些可能的实现方式的例子,它们不是在所有的记录.我很难弄清楚这里真正需要什么以及它是如何工作的.
所以我在Flask的sqlite数据库中有这个db.model。看起来像这样:
class Drink(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(64), index = True)
kind = db.Column(db.String(64), index = True)
image = db.Column(db.LargeBinary)
def __init__(self, name, kind, image):
self.name = name
self.kind = kind
self.image = image
def __repr__(self):
return '<Drink %r>' % self.name
Run Code Online (Sandbox Code Playgroud)
所以,这个问题是我有此列image,这是一张实际的图片,但是我不知道在烧瓶代码中使用哪种数据类型。
这是烧瓶代码: Flask
class DrinkAPI(Resource):
def __init__(self):
self.reqparse = reqparse.RequestParser()
self.reqparse.add_argument('name', type = str, required = True, help = 'No name title provided', location = 'json')
self.reqparse.add_argument('type', type = str, required = True, help='No type …Run Code Online (Sandbox Code Playgroud) 在setup.py我需要Flask和Flask-Autodoc.我运行setup.py install并确认已安装两个发行版.
按照指示,我导入了Flask-Autodoc:
from flask.ext.autodoc import Autodoc
Run Code Online (Sandbox Code Playgroud)
但我明白了ModuleNotFoundError: No module named 'flask.ext'.我在Conda Python 3.6环境中,当我创建一个新的虚拟环境并重新安装包含依赖项的包时,会发生同样的事情.
我认为Flask扩展应该从flask.ext模块导入,但这似乎不起作用.我也试过如下:from flask.autodoc import Autodoc,from autodoc import Autodoc,from FlaskAutodoc import Autodoc.
flask-extensions ×10
flask ×8
python ×7
caching ×1
celery ×1
celery-task ×1
flask-admin ×1
pip ×1
python-3.x ×1
sockets ×1
sqlalchemy ×1
sqlite ×1
token ×1
types ×1
urlencode ×1