基于 db.session 进行查询

基于 db.session 进行查询(适用于多表查询)

基本语法:db.session.query(Models1).filter()
详细参考资料:flask的ORM操作

Flask-SQLAlchemy 中多表链接查询

test= db.session.query("name from student where sys_param_key='ccb_test_scope'").all()[0][0]

Sqlalchemy - 使用原生语句查询(from_statement + text)
## 使用原生sql语句进行查询
 
from sqlalchemy.sql import text
res = db_session.query(Student).from_statement(text("SELECT * FROM STUDENT WHERE STUDENT_ID=:STUDENT_ID")).\
    params(STUDENT_ID="179074001").first()
print(res.student_id,res.name,sep=": ")

db.session.excute(sql语句)
db.session.query()应用实例:

flask插件之flask_sqlalchemy使用

change_info = db.session.query(Classo.id, Class.desc, Class.name, Class.online_plan
                                   ).filter(Class.id == 10).one()

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据你提供的代码,似乎有一个语法错误。在类News中的__repr__方法中,self.cntent应该改为self.content才能正确输出。修改后的代码如下: ``` from flask import Flask from flask_sqlalchemy import SQLAlchemy from datetime import datetime app = Flask(__name__) HOSTNAME = '127.0.0.1' PORT = '3306' DATABASE = 'new' USERNAME = 'root' PASSWORD = '123456' DB_URI = 'mysql+pymysql://{username}:{password}@{host}:{port}/{database}?charset=utf8'.format( username=USERNAME, password=PASSWORD, host=HOSTNAME, port=PORT, database=DATABASE) app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI db = SQLAlchemy(app) class News(db.Model): __tablename__ = 'news' id = db.Column(db.Integer, autoincrement=True, primary_key=True) title = db.Column(db.String(50), nullable=False) content = db.Column(db.Text) time = db.Column(db.DateTime, default=datetime.now) author = db.Column(db.String(50), nullable=False) def __repr__(self): return '<News(title:%s,content:%s,time:%s,author:%s)>'%(self.title, self.content, self.time, self.author) with app.app_context(): db.drop_all() db.create_all() with app.app_context(): news1 = News(title='web开发', content='基于python的web开发技术', author='flask') news2 = News(title='web前端', content='Bootstrap前端开发框架', author='bootstrap') db.session.add_all([news1,news2]) db.session.commit() with app.app_context(): news = db.session.query(News).filter(News.author=='bootstrap').all() print(news) ``` 请检查代码中是否存在其他语法错误或配置错误,例如数据库连接配置是否正确。同时,建议使用try-except语句来捕获异常并输出错误信息,以便更好地排查问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值