账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    flask_sqlalchemy 怎么更方便的传变量?
    • 2020-01-01 00:00
    • 10
    55
    0
    前端获取的val值
    val = request.form.get('data')
    
    if val == 'game':
        data = DbapiYw.query.with_entities(DbapiYw.game).distinct().all()
    if val == 'new':
        data = DbapiYw.query.with_entities(DbapiYw.new).distinct().all()
     
    return jsonify(data)

    DbapiYw 是models模型

    每次获取的值有可能不一样,
    那在查询的时候,sql语句也需要变换
    请问with_entities,
    这里应该如何每次根据变量去查询不同的sql

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 习惯躲避阳光、 普通会员 1楼

      在 Flask-SQLAlchemy 中,我们可以使用参数化查询来更方便地传变量。参数化查询允许我们将变量替换到查询中,从而提高安全性和可维护性。

      以下是一个简单的例子:

      ```python from flask_sqlalchemy import SQLAlchemy

      app = Flask(name) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db' db = SQLAlchemy(app)

      class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) email = db.Column(db.String(120), nullable=False)

      @app.route('/') def index(): user = User.query.filter_by(name='John').first() return render_template('index.html', user=user)

      if name == 'main': app.run(debug=True) ```

      在这个例子中,我们使用了 Flask-SQLAlchemy 的 params 标签来参数化查询。params 标签允许我们在查询中直接设置参数,而无需在查询语句中手动指定它们。例如,user = User.query.filter_by(name='John', email='john@example.com')

      在上述代码中,params['name'] = 'John'params['email'] = 'john@example.com' 分别用于设置 nameemail 参数。当我们运行这个应用程序时,数据库将自动执行这些查询,而不需要我们手动编写。

      这种方法的优点在于,它使我们的代码更易于维护,因为它使我们可以更容易地更改数据库查询,而不需要更改应用程序代码。同时,它也提高了安全性,因为我们可以确保只有具有适当权限的用户才能访问我们的数据库。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部