会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图基础和URL 226楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask数据库 227楼

from random import randint



from sqlalchemy import Column,Integer,String,ForeignKey

from sqlalchemy.orm import relationship,backref



from db_util import Base,Session



class User(Base):

  __tablename__ = 't_user'

  id = Column(Integer, primary_key=True,autoincrement=True)

  name = Column(String(32))

  age = Column(Integer)



  def __repr__(self):

    return f'<User: id={self.id} name={self.name} age={self.age}>'  



class News(Base):

  __tablename__ = 't_news'

  id = Column(Integer,primary_key=True,autoincrement=True)

  title = Column(String(32),nullable=False)

  content = Column(String(32),nullable=False)

  read_count = Column(Integer)



  uid = Column(Integer,ForeignKey('t_user.id'))

  user = relationship('User',backref=backref('newss',lazy='dynamic'))



  def __repr__(self):

    return f'<News: id={self.id} title={self.title} content={self.content} read_count={self.read_count}>'  



def create_data():

  with Session() as ses:

    for i in range(10):

      user = User(name = f'name{i}',age = randint(6, 30))

      ses.add(user)

    for i in range(10):

      news = News(title=f'title{i}',content=f'info{i}',read_count= randint(0,1000))

      user.newss.append(news)

    ses.commit()



def query_data():

  with Session() as ses:

    users = ses.query(User)

    print(users)

    print(type(users))





def query_data2():

  with Session() as ses:

    users = ses.query(User).all()

    print(users[-1].newss)

    print(type(users[-1].newss))



def query_data3():

  # 'lazy = select 默认不能2次过滤'

  with Session() as ses:

    users = ses.query(User).all()

    newss = users[-1].newss.filter(News.read_count >500 ).all()

    print(newss)

  







if __name__ == '__main__':

  # Base.metadata.drop_all()

  # Base.metadata.create_all()

  # create_data()

  # query_data2()

  query_data3()

没明白这段代码生成的uid为什么都是10

Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask数据库 228楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask高级 230楼

image.png

Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图基础和URL 231楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask之Jinja2模版 232楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图基础和URL 234楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/GraphQL 235楼

image.png

Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图基础和URL 237楼

Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图基础和URL 238楼

Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图基础和URL 239楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Ajax 240楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637