我目前有一个HTML表单,用户可以填写他们希望发布的广告的详细信息.我现在希望能够添加一个dropzone来上传待售商品的图片.我发现dropzone.js似乎完成了我需要的大部分工作.但是,在查看文档时,您似乎需要将整个表单的类指定为"dropzone"(而不仅仅是输入元素).这意味着我的整个表格成为了dropzone.是否可以在我的表单的一部分中使用dropzone,即仅将元素指定为类dropzone,而不是整个表单?
我可以使用单独的表单,但我希望用户能够通过一个按钮提交所有表单.
或者,是否有另一个库可以做到这一点?
非常感谢
我正在尝试使用 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) 有没有任何库或工具可以在没有 SQLAlchemy 的情况下在 python 中执行数据库迁移?我使用的是 PostgreSQL 数据库,查询是原始 SQL。我使用 psycopg2 进行数据库连接。
我试图限制上传文件的大小,我将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) 我在python中使用我的API中的Flask缓存.
目前我正在使用装饰器@app.cache.memoize(cache_memoize_value)
,我通过调用来冲洗它app.cache.delete_memoized(view)
问题是,memoize
它将被缓存n
视图而不是特定的时间.如果我想为缓存指定超时,我需要使用装饰器@app.cache.cached(timeout=300)
并清除它app.cache.clear()
.但是,这种清晰的方法将清除一切,而不仅仅是一个特定的观点.
如何在使用缓存装饰器时清除特定视图?
我想添加一个返回上一页的取消按钮。我的代码是: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) 我有一个由诗歌构建的 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学习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错误。我确定我做的事很愚蠢,但是即使经过大量的谷歌搜索,我也无法弄清楚。任何帮助都会很棒。谢谢。
我需要从表单中获取数据.
我使用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'
帮我从表格中获取数据.
我按照教程:
在我的 PyCharm 中,我按照教程进行操作:
我收到错误:
回溯(最近一次调用):文件“/Users/adob/TestPython/test02/passwd.py”,第 19 行,在 bool = isinstance({}, Iterable) NameError: name 'Iterable' 未定义
启动后可以使用 Flask 查看传入的请求,例如 Flask 图像
有没有办法查看gunicorn 实时发出的请求?
flask ×8
python ×7
html ×2
javascript ×2
browser ×1
caching ×1
dropzone.js ×1
fastapi ×1
file-upload ×1
flask-cache ×1
gunicorn ×1
jquery ×1
json ×1
postgresql ×1
pytest ×1
unit-testing ×1
uvicorn ×1
wtforms ×1