小编Hol*_*son的帖子

具有空选项的Flask-wtf动态选择字段

我想基于查询搜索填充选择字段.

但我也想要一个空选项.

这是我目前的代码

 form.state.choices=[(s.id, s.name) for s in State.query.all()]
Run Code Online (Sandbox Code Playgroud)

结果是

  <select>
  <option value="CA">California</option>
  <option value="FL">Florida</option>
  </select>
Run Code Online (Sandbox Code Playgroud)

期望的结果是

<select>
<option value=""></option>
<option value="CA">California</option>
<option value="FL">Florida</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如果select选项为空,如果无效也会很酷.

python flask wtforms flask-wtforms

8
推荐指数
2
解决办法
3493
查看次数

Flask-restful API 不接受 json

我正在尝试学习如何做api。我完全复制了书中的所有内容,但无法发布到 api。我尝试将{'name':'holy'}原始数据postman(一个 json 发布工具)发布到 api,并收到 vladation 帮助消息错误“未提供名称”:但是当我尝试时name=holy它工作正常。我认为它不应该那样工作,我该如何让它工作{'name':'holy'}

from flask import Flask, request,render_template, jsonify
from flask_restful import Resource, Api,marshal_with, fields, reqparse

app = Flask(__name__)
api = Api(app)


class UserApi(Resource):
    def __init__(self):
        self.reqparse = reqparse.RequestParser()
        self.reqparse.add_argument(
            'name',
            required=True,
            help='No name provided',
            location=['form', 'json']
        )

    def get(self):
        return jsonify ({"first_name":"Holy","last_name": "Johnson"})

    def post(self):
        args = self.reqparse.parse_args()
        return jsonify ({"first_name":"Holy","last_name": "Johnson"})



api.add_resource(UserApi, '/users')

if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

python api rest flask-restful

4
推荐指数
1
解决办法
7142
查看次数

Flask G变量简单示例

据我了解,ag变量是一个临时存储,从一个请求到另一个请求。例如,我认为它应该像这样工作。但是我无法使它工作。

from flask import Flask, g, redirect, url_for
app = Flask(__name__)

@app.route('/')
def hello_world():
    g = "hello world"
    return redirect(url_for('test'))

@app.route('/test')
def test():
    return str(g)

if __name__ == "__main__":
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

python flask

2
推荐指数
1
解决办法
7963
查看次数

如何在jinja2中获取WTForms Validator

我想要做的是检查表单对象具有哪种类型的表单验证器,以便我可以基于这些属性呈现字段.例如,如果表单具有最大长度验证,则将max-length属性添加到html表单.

我在想它的工作方式是这样的:

zip_code = TextField('Zip Code', [validators.Length(min=5, max=11)])
Run Code Online (Sandbox Code Playgroud)

将会像这样进入Jinja2宏:

{% if field.valdator "has max length" %}
  {% set class = class + ' maxlength="11" ' %}
{% endif %}
{{ field(class=class, **kwargs) }}
Run Code Online (Sandbox Code Playgroud)

python jinja2 flask wtforms flask-wtforms

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

标签 统计

python ×4

flask ×3

flask-wtforms ×2

wtforms ×2

api ×1

flask-restful ×1

jinja2 ×1

rest ×1