小编Gre*_* Li的帖子

将Dropzone.js与其他字段集成到现有HTML表单中

我目前有一个HTML表单,用户可以填写他们希望发布的广告的详细信息.我现在希望能够添加一个dropzone来上传待售商品的图片.我发现dropzone.js似乎完成了我需要的大部分工作.但是,在查看文档时,您似乎需要将整个表单的类指定为"dropzone"(而不仅仅是输入元素).这意味着我的整个表格成为了dropzone.是否可以在我的表单的一部分中使用dropzone,即仅将元素指定为类dropzone,而不是整个表单?

我可以使用单独的表单,但我希望用户能够通过一个按钮提交所有表单.

或者,是否有另一个库可以做到这一点?

非常感谢

html javascript jquery file-upload dropzone.js

158
推荐指数
9
解决办法
17万
查看次数

使用 url_for 函数为 Flask 测试客户端生成 URL

我正在尝试使用 pytest 为 Flask 应用程序编写单元测试。我有一个应用工厂:

def create_app():
    from flask import Flask
    app = Flask(__name__)
    app.config.from_object('config')
    import os
    app.secret_key = os.urandom(24)
    from models import db
    db.init_app(app)
    return app
Run Code Online (Sandbox Code Playgroud)

和一个测试类:

class TestViews(object):

    @classmethod
    def setup_class(cls):
        cls.app = create_app()
        cls.app.testing = True
        cls.client = cls.app.test_client()

    @classmethod
    def teardown_class(cls):
        cls.app_context.pop()

    def test_create_user(self):
        """
        Tests the creation of a new user.
        """
        view = TestViews.client.get(url_for('create_users')).status_code == 200
Run Code Online (Sandbox Code Playgroud)

但是当我运行我的测试时,我收到以下错误:

RuntimeError: Attempted to generate a URL without the application context being pushed. This has to be executed …
Run Code Online (Sandbox Code Playgroud)

python unit-testing pytest flask

7
推荐指数
2
解决办法
4176
查看次数

没有 SQLAlchemy 的 Flask 中的数据库迁移

有没有任何库或工具可以在没有 SQLAlchemy 的情况下在 python 中执行数据库迁移?我使用的是 PostgreSQL 数据库,查询是原始 SQL。我使用 psycopg2 进行数据库连接。

python postgresql database-migration flask

6
推荐指数
1
解决办法
6816
查看次数

在Flask结果连接重置中上传大于MAX_CONTENT_LENGTH的文件

我试图限制上传文件的大小,我将app.config ['MAX_CONTENT_LENGTH']设置为所需的最大值,

我使用此代码显示错误。

@app.errorhandler(413)
def request_entity_too_large(error):
    return 'File Too Large', 413
Run Code Online (Sandbox Code Playgroud)

使用curl时,错误显示正确。我使用Firefox / Safari进行了检查,在这两种情况下,我均收到浏览器连接断开/重置错误。

火狐浏览器

The connection was reset

The connection to the server was reset while the page was loading.

    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any pages, check your computer's network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the …
Run Code Online (Sandbox Code Playgroud)

browser flask

5
推荐指数
1
解决办法
1058
查看次数

删除Flask-Cache或Flask-Caching中的特定缓存

我在python中使用我的API中的Flask缓存.

目前我正在使用装饰器@app.cache.memoize(cache_memoize_value),我通过调用来冲洗它app.cache.delete_memoized(view)

问题是,memoize它将被缓存n视图而不是特定的时间.如果我想为缓存指定超时,我需要使用装饰器@app.cache.cached(timeout=300)并清除它app.cache.clear().但是,这种清晰的方法将清除一切,而不仅仅是一个特定的观点.

如何在使用缓存装饰器时清除特定视图?

python caching flask flask-cache flask-caching

5
推荐指数
2
解决办法
3145
查看次数

使用 Flask-WTF/WTForms 在 Flask 中添加取消按钮

我想添加一个返回上一页的取消按钮。我的代码是:forms.py:

from flask_wtf import Form
from wtforms import StringField, HiddenField, SubmitField
from wtforms.validators import DataRequired, Length, ValidationError


def _required(form, field):
    if not field.raw_data or not field.raw_data[0]:
        raise ValidationError('Field is required')

class OrganisationForm(Form):
    id = HiddenField('id', default="-1")
    name = StringField('name', validators=[DataRequired()])
    manager_name = StringField('manager_name')
    address = StringField('address', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    postal_code = StringField('postal_code', validators=[DataRequired(), Length(max=16)])
    province = StringField('province', validators=[Length(max=2, message="Can't exceed 2 characters")])
    country = StringField('country', validators=[DataRequired()])
    submit = SubmitField('Add')
    cancel = SubmitField('Cancel')
Run Code Online (Sandbox Code Playgroud)

和模板页面:

{% block content %}
<div …
Run Code Online (Sandbox Code Playgroud)

html flask wtforms

5
推荐指数
2
解决办法
4300
查看次数

如何从 Poetry 运行 FastAPI 应用程序?

我有一个由诗歌构建的 fastapi 项目。我想在 pyproject.tom 中使用脚本部分运行应用程序,如下所示:

poetry run start
Run Code Online (Sandbox Code Playgroud)

该部分中的双引号内是什么?

[tool.poetry.scripts]
start = ""
Run Code Online (Sandbox Code Playgroud)

我尝试运行以下脚本。

import uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}

def main():
    print("Hello World")
    uvicorn.run(app, host="0.0.0.0", port=8000, reload=True, workers=2)

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

它停止应用程序并只显示这样的警告。

警告:您必须将应用程序作为导入字符串传递以启用“重新加载”或“工人”。

python-poetry fastapi uvicorn

5
推荐指数
3
解决办法
3798
查看次数

烧瓶返回多个变量?

我正在用Python学习Flash。我的python技能还可以,但是我没有使用Web应用程序的经验。我有一个需要一些信息的表格,我想在提交后将其显示回来。我可以做到这一点,但是即使该表单中有3个变量,我也只能从该表单中返回一个变量。我可以单独归还每个人,但不能一起归还。如果我全部尝试3次,则会出现500错误。这是我正在使用的代码:

from flask import Blueprint
from flask import render_template
from flask import request

simple_page = Blueprint('simple_page', __name__)

@simple_page.route('/testing', methods=['GET', 'POST'])
def my_form():
        if request.method=='GET':
            return render_template("my-form.html")
        elif request.method=='POST':
            firstname = request.form['firstname']
            lastname = request.form['lastname']
            cellphone = request.form['cellphone']
            return firstname, lastname, cellphone
Run Code Online (Sandbox Code Playgroud)

如果我将最后一个返回行更改为:

return firstname
Run Code Online (Sandbox Code Playgroud)

它有效,或者:

return lastname
Run Code Online (Sandbox Code Playgroud)

要么:

return cellphone
Run Code Online (Sandbox Code Playgroud)

如果我尝试两个变量,它将仅返回第一个变量,一旦添加第三个变量,我将得到500错误。我确定我做的事很愚蠢,但是即使经过大量的谷歌搜索,我也无法弄清楚。任何帮助都会很棒。谢谢。

python flask

3
推荐指数
1
解决办法
9101
查看次数

如何在Flask中获取表单数据?

我需要从表单中获取数据.

我使用JavaScript来创建表单:

<script>   
function checkAuth() {
                var user = ADAL.getCachedUser();
                if (user) {
                    var form = $('<form style="position: absolute; width: 0; height: 0; opacity: 0; display: none; visibility: hidden;" method="POST" action= "{{ url_for("general.microsoft") }}">');

                    form.append('<input type="hidden" name="token" value="' + ADAL.getCachedToken(ADAL.config.clientId) + '">');
                    form.append('<input type="hidden" name="json" value="' + encodeURIComponent(JSON.stringify(user)) + '">');
                    $("body").append(form);
                    form.submit();
                }
            }
</script> 
Run Code Online (Sandbox Code Playgroud)

然后我需要从输入字段中获取数据name="json".

这是我的视图功能:

@general.route("/microsoft/", methods=["GET", "POST"])
@csrf.exempt
def microsoft():
    form = cgi.FieldStorage()
    name = form['json'].value
    return name
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

builtins.KeyError KeyError: 'json'

帮我从表格中获取数据.

javascript python json flask

3
推荐指数
1
解决办法
3万
查看次数

当判断iterable得到NameError: name 'Iterable' is not defined

我按照教程:

在此处输入图片说明

在我的 PyCharm 中,我按照教程进行操作:

在此处输入图片说明

我收到错误:

回溯(最近一次调用):文件“/Users/adob/TestPython/test02/passwd.py”,第 19 行,在 bool = isinstance({}, Iterable) NameError: name 'Iterable' 未定义

python

3
推荐指数
1
解决办法
1680
查看次数

使用 Gunicorn 和 Flask 登录控制台查看传入请求

启动后可以使用 Flask 查看传入的请求,例如 Flask 图像

有没有办法查看gunicorn 实时发出的请求?

python flask gunicorn

3
推荐指数
1
解决办法
1943
查看次数