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

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数据库 827楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask之Jinja2模版 828楼

from DBUtil import Base,Session
from sqlalchemy import Column,Integer,String,ForeignKey
from sqlalchemy.orm import relationship

class User(Base):
    __tablename__ = 't_connect_user'
    id = Column(Integer,primary_key = True, autoincrement = True)
    uname = Column(String(50)) 
    item = relationship('Item')

class Item(Base):
    __tablename__ = 't_connect_item'
    price = Column(Integer)
    uid = Column(Integer,ForeignKey("t_connect_user.id"))
    user = relationship('User',backref='item')

def create_table():
    User1 = User(uname = 'nihao')
    Item1 = Item(price = 40)
    User1.item = Item1
    with Session() as ses:
        ses.add(User1)
        # User1.item.append(Item1)
        ses.commit()

# class LoginUser(Base):
#   __tablename__ = 't_user_login'
#   id = Column(Integer,primary_key=True,autoincrement=True)
#   uname = Column(String(32),nullable=False)
#   passwd = Column(String(32),nullable=False)
#   user = relationship('User',uselist=False) # 不友好,总有警告


# class User(Base):
#   __tablename__ = 't_user_2'
#   id = Column(Integer,primary_key=True,autoincrement=True)
#   name = Column(String(32),nullable=False,name='name')
#   gender = Column(String(1))
#   address = Column(String(64))
#   login_id = Column(Integer,ForeignKey('t_user_login.id'))
#   login_user = relationship('LoginUser')

# def create_data():
#   login = LoginUser(uname = 'baizhan', passwd = '123')
#   user = User(name='百战',gender = '女',address ='北京')
#   # login.user = user # 建立关联关系

#   user.login_user = login

#   with Session() as ses:
#     ses.add(user)
#     ses.commit()

if __name__ == '__main__':
    Base.metadata.create_all()
    # create_table()

错误:

File "/Users/bytedance/python学习/SQLAlchemy/SQLAlchemy_env/lib/python3.11/site-packages/sqlalchemy/orm/mapper.py", line 693, in __init__

    self._configure_pks()

  File "/Users/bytedance/python学习/SQLAlchemy/SQLAlchemy_env/lib/python3.11/site-packages/sqlalchemy/orm/mapper.py", line 1400, in _configure_pks

    raise sa_exc.ArgumentError(

sqlalchemy.exc.ArgumentError: Mapper mapped class Item->t_connect_item could not assemble any primary key columns for mapped table 't_connect_item'



这个问题到底出自在哪呢?? 差了快一小时了也没找到

Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask数据库 829楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask高级 830楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask数据库 834楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Ajax 839楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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