如何从烧瓶中的QuerySelectField传递数据? - python

在我的应用程序中,我有一个QuerySelectField来填充下拉菜单。
我从数据库获取queryselectfield的选择详细信息。一旦用户从下拉菜单中选择任何选项,然后单击“提交”按钮(这是一种POST方法),我想将用户从下拉菜单中选择的值传递给要存储的数据库。但是它总是从queryselectfield返回值None。因此,db将数据存储为None。

models.py

class Orders(db.Model):
    __tablename__ = 'orders'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64))
    email = db.Column(db.String(120))
    resturant = db.Column(db.String(64))
    food = db.Column(db.String(64)))

表格

def possible_res():
    return Resturant.query.all()

def possible_menu():
    return Menu.query.all()

class OrderForm(Form):

    sel_res = QuerySelectField(query_factory=possible_res,
                               get_label='name')

    sel_menu = QuerySelectField(query_factory=possible_menu,
                                get_label='food',
                                allow_blank=False
                                )
    submit = SubmitField("Confirm")

views.py

@app.route('/resturant', methods=['GET','POST'])
def resturant():
    form = OrderForm()
    if request.method == 'GET':
        test = form.sel_menu.data
        return render_template("make_order.html", form=form, test=test)
    else:
        a = User.query.filter_by(email = session['email']).all()
        for u in a:
            name = u.firstname

        b = Orders(name=name, email=session['email'])
        b.resturant = form.sel_res.data
        b.food = form.sel_menu.data
        db.session.add(b)
        db.session.commit()
        return redirect('/')

参考方案

QuerySelectField#__init__query_factory参数应返回SQLAlchemy Query对象,而不是Python列表。 WTForms将具体化查询本身by iterating over it。只需更改工厂函数以返回query属性,而不是列表即可:

def possible_res():
    return Resturant.query

def possible_menu():
    return Menu.query

Flask Cors无法运作 - python

我正在尝试在Flask应用程序中启用CORS,但无论我把来源如何,似乎总是可以从浏览器访问URL。我不知道我做错了什么。这是我的代码from flask import Flask, jsonify from flask_cors import CORS app = Flask(__name__) CORS(app, resources={r'/*&…

flask:异常后停止服务器 - python

我想在发生未处理的异常时立即停止我的Flask服务器。这是一个例子:from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): 1/0 # argh, exception return 'Hello World!' i…

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

Python exchangelib在子文件夹中读取邮件 - python

我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。