以前,我问过如何获取Flask请求中收到的数据,因为它request.data是空的.答案解释request.data为原始帖子正文,但如果解析表单数据则为空.如何无条件地获得原始邮政体?
@app.route('/', methods=['POST'])
def parse_request():
data = request.data # empty in some cases
# always need raw data here, not parsed form data
Run Code Online (Sandbox Code Playgroud) 我想知道如何使用带有Flask的Python获取POST/GET请求变量的值.
使用Ruby,我会做这样的事情:
variable_name = params["FormFieldValue"]
Run Code Online (Sandbox Code Playgroud)
我如何使用Flask做到这一点?
我是Flask的新手,我无法从select标签中获取值.我试过request.form['comp_select']返回一个错误的请求.但是,当我尝试使用时request.form.get('comp_select'),我的返回页面返回一个空白列表"[]".
我的HTML:
<form class="form-inline" action="{{ url_for('test') }}">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Please select</span>
<select name="comp_select" class="selectpicker form-control">
{% for o in data %}
<option value="{{ o.name }}">{{ o.name }}</option>
{% endfor %}
</select>
</div>
<button type="submit" class="btn btn-default">Go</button>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我的app.py:
@app.route("/test" , methods=['GET', 'POST'])
def test():
select = request.form.get('comp_select')
return(str(select)) # just to see what select is
Run Code Online (Sandbox Code Playgroud)
如果我的帖子格式化已关闭(也是Stack Overflow的新功能),请提前抱歉.
我正在尝试使用flask进行文件上传并将数据任务输入我的MongoDB,但是当我填写表单并上传图像时出现此错误:
错误请求 浏览器(或代理)发送了此服务器无法理解的请求.
我的HTML代码
<form class="form-check form-control" method="post" enctype="multipart/form-data" action="{{ url_for('index') }}">
<label>Full Name*</label></td>
<input name="u_name" type="text" class="text-info my-input" required="required" />
<label>Email*</label>
<input name="u_email" type="email" class="text-info my-input" required="required" />
<label>Password*</label>
<input name="u_pass" type="password" class="text-info my-input" required="required" />
<label>Your Image*</label>
<input name="u_img" type="file" class="text-info" required="required" /></td>
<input name="btn_submit" type="submit" class="btn-info" />
</form>
Run Code Online (Sandbox Code Playgroud)
&我的python代码:
from flask import Flask, render_template, request, url_for
from flask_pymongo import PyMongo
import os
app = Flask(__name__)
app.config['MONGO_DBNAME'] = 'flask_assignment'
app.config['MONGO_URI'] = 'mongodb://<user>:<pass>@<host>:<port>/<database>'
mongo = PyMongo(app)
app_root = os.path.dirname(os.path.abspath(__file__)) …Run Code Online (Sandbox Code Playgroud) 我正在使用Flask开发Web应用程序.其中一个视图应该通过PUT请求接受上传的文件,但是我只能获得POST请求$ curl -F upload=@filename URL才能正常工作.随着PUT请求,如$ curl --upload-file filenname URL在request.filesImmutableMultiDict是空的.我是否在烧瓶中丢失了一些东西或者使用卷曲?
我希望能够在textarea(HTML)中编写多行文本,并在python中检索此文本以便使用Flask进行处理.或者,我希望能够在表单中编写多行文本.我对使用JS没有任何线索,所以这对我没有帮助.我该怎么做呢?
我正在尝试在 Flask 应用程序中将 UTC 时间转换为适当的本地时间。我想知道是否可以检测用户的时区并动态设置它。
到目前为止,这是我的代码,仅适用于US/Pacific时区中的每个人(datetimefilter从这个 SO 问题中提取)
from flask import Flask, render_template_string
import datetime
import pytz
app = Flask(__name__)
@app.template_filter('datetimefilter')
def datetimefilter(value, format='%b %d %I:%M %p'):
tz = pytz.timezone('US/Pacific') # timezone you want to convert to from UTC (America/Los_Angeles)
utc = pytz.timezone('UTC')
value = utc.localize(value, is_dst=None).astimezone(pytz.utc)
local_dt = value.astimezone(tz)
return local_dt.strftime(format)
@app.route('/')
def index():
dt = datetime.datetime.utcnow()
return render_template_string(
'''
<h4>UTC --> Local Time</h4>
Datetime right now is:
<p>{{ dt | …Run Code Online (Sandbox Code Playgroud) 关于潜在重复的免责声明:我也遇到过类似的问题,我想我现在已经阅读了几乎所有这些答案,但没有一个为我解决了问题。
我有一个应用程序,前端是 React,后端是 Flask 服务器。我有一个重大问题。代码似乎检查了前端和后端,但是当我单击表单的提交按钮后,我在 JS 控制台中收到错误:Form submission canceled because the form is not connected.
现在,我的表单上只有一个按钮,并且该按钮的类型为submit,handleSubmit处理程序位于form标记中,因此我认为这不会导致问题。我还添加了此配置对象来处理潜在的 CORS 错误,但至少我没有收到任何 CORS 错误。
React 表单组件代码:
import React, { useState } from "react";
import axios from "axios";
import Button from "@material-ui/core/Button";
import { TextField } from "@material-ui/core";
import DisplayUpper from "./DisplayUpper";
function Form() {
const [inputText, setInputText] = useState("");
const [fetchedData, setFetchedData] = useState("");
const [isSubmitted, setSubmitted] = useState(false);
const handleSubmit = (e) => {
setSubmitted(true);
console.log("button …Run Code Online (Sandbox Code Playgroud) 目前,我的网站上有两个下拉框,其值在提交表单时转换为两个 URL 参数“myState”和“myShelter”。例如:
https://www.atweather.org/forecast?myState=CT&myShelter=181
我现在添加第三个框,并且将有第三个名为“myTrail”的相应参数。我的问题是:如何才能使如果有人直接提交仅包含两个参数的 URL,浏览器不会因错误请求而出错?我希望用户看到该页面就好像选择了“myState”和“myShelter”,但“myTrail”未被选择。
我尝试查看此处和此处,但我认为这些情况与我所问的情况并不完全相同。我在 Python 3 下使用 Flask,目前处理这条路线如下:
@app.route('/forecast', methods = ['GET'])
def forecast(loc_state = None, loc_id = None):
"""
Handles rendering of page after a location has been selected
"""
loc_state = request.args['myState']
loc_id = int(request.args['myShelter'])
...and a bunch of other logic for rendering the page...
Run Code Online (Sandbox Code Playgroud)
预先感谢您的任何见解!
flask.request.form["xxx"]、flask.request.form.get("xxx")和之间有什么区别flask.request.args.get("xxx")?
我有这个问题,因为我正在使用flask-login 来处理身份验证。
特别是在下面的代码中(取自flask-login github页面),我不明白为什么 with req.form.get("email"), email 是None,而 with req.form["email"], email 没有值。这是代码。
@login_manager.request_loader
def request_loader(req):
email = req.form.get('email')
if email not in users:
return
user = User()
user.id = email
# DO NOT ever store passwords in plaintext and always compare password
# hashes using constant-time comparison!
user.is_authenticated = req.form['pw'] == users[email]['pw']
return user
Run Code Online (Sandbox Code Playgroud)