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


老师这是啥错误·

from sqlalchemy import create_engine,Column,Integer,Float,Boolean,DECIMAL,Enum,\
    Date,DateTime,Time,String,Text,func,or_,and_,ForeignKey,Table
from sqlalchemy.dialects.mysql import LONGTEXT
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker,relationship,backref
import random,time
from datetime import datetime
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'first_sqlalchemy'
USERNAME = 'root'
PASSWORD = '123456'

DB_URI ="mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)

engine = create_engine(DB_URI)
Base = declarative_base(engine)

session = sessionmaker(engine)()

class Article(Base):
    __tablename__ = 'article'
    id = Column(Integer, primary_key=True, autoincrement=True)
    title = Column(String(50), nullable=False)
    create_time = Column(DateTime, nullable=False, default=datetime.now)
    __mapper_args__ = {
        "order_by": create_time  # 正序
        # "order_by": create_time.desc() #倒序
    }

    def __repr__(self):
        return "<Article(title:%s,create_time:%s)>" % (self.title,self.create_time)
def add_data():
    Base.metadata.drop_all()
    Base.metadata.create_all()

    article1 = Article(title='title1')
    session.add(article1)
    session.commit()
    time.sleep(3)#3秒后再添加另一个数据
    article2 = Article(title='title2')
    session.add(article2)
    session.commit()
def oper():
    #正序排序
    # article1=session.query(Article).order_by(Article.create_time).all()
    # print(article1)
    #降序排序
    article2=session.query(Article).all()
    print(article2)
if __name__=="__main__":
    add_data()
    oper()




D:\python__virtual\flask_ennv\Scripts\python.exe "D:/pythonz资料/所有资料 flask sql/4.源码/35_sqlalchemy_demo/Demo16_02.py"

Traceback (most recent call last):

  File "D:\pythonz资料\所有资料 flask sql\4.源码\35_sqlalchemy_demo\Demo16_02.py", line 23, in <module>

    class Article(Base):

  File "D:\python__virtual\flask_ennv\lib\site-packages\sqlalchemy\orm\decl_api.py", line 72, in __init__

    _as_declarative(reg, cls, dict_)

  File "D:\python__virtual\flask_ennv\lib\site-packages\sqlalchemy\orm\decl_base.py", line 126, in _as_declarative

    return _MapperConfig.setup_mapping(registry, cls, dict_, None, {})

  File "D:\python__virtual\flask_ennv\lib\site-packages\sqlalchemy\orm\decl_base.py", line 177, in setup_mapping

    return cfg_cls(registry, cls_, dict_, table, mapper_kw)

  File "D:\python__virtual\flask_ennv\lib\site-packages\sqlalchemy\orm\decl_base.py", line 314, in __init__

    self._early_mapping(mapper_kw)

  File "D:\python__virtual\flask_ennv\lib\site-packages\sqlalchemy\orm\decl_base.py", line 200, in _early_mapping

    self.map(mapper_kw)

  File "D:\python__virtual\flask_ennv\lib\site-packages\sqlalchemy\orm\decl_base.py", line 992, in map

    mapper_cls(self.cls, self.local_table, **self.mapper_args),

TypeError: __init__() got an unexpected keyword argument 'order_by'


Process finished with exit code 1


Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask数据库 431楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask高级 432楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图高级 433楼

老师,在29-34行中,使用接口Animal类来获取Mouse,Bird的run,fly获取不了,视频里老师也没有进行这2个参数的演示。

from flask import Flask
from flask_graphql import GraphQLView
import graphene

class Animal(graphene.Interface):  #定义一个接口类
    id=graphene.ID()
    name=graphene.String()

class Mouse(graphene.ObjectType):
    class Meta:
        interfaces=(Animal,)    #继承接口中的属性
    run = graphene.String()     #自定义属性

class Bird(graphene.ObjectType):
    class Meta:
        interfaces = (Animal,)  #继承接口中的属性
    fly = graphene.String()     #自定义属性

class Query(graphene.ObjectType):
    mouse=graphene.Field(Mouse) #获得Mouse属性
    bird=graphene.Field(Bird)   #获得Bird属性
    animal=graphene.Field(Animal,type_=graphene.Int(required = True))

    def resolve_mouse(self,info):
        return Mouse(id=1,name='杰瑞',run='汤姆快跑呀~~')
    def resolve_bird(self,info):
        return Bird(id=2,name='高书博',fly='汤姆快跑呀~~')
    # def resolve_animal(self,info,type_):
    #     if type_==1:
    #         return Mouse(id=3, name='狗蛋高书博', run='追唐老鸭啦~~~')
    #     elif type_==2:
    #         return Bird(id=4, name='狗子高书博', fly='跑呀~Tom来了!!')

    def resolve_animal(self,info,type_):
        # return Animal(id=3,name='动物') #  "message": "An Interface cannot be intitialized",
        if type_ == 1:
            return Mouse(id= 4, name='米老鼠',run='追唐老鸭啦~~~')
        else:
            return Bird(id = 3,name='鹦鹉',fly = '跑呀~Tom来了!!')

if __name__=='__main__':
    schema=graphene.Schema(query=Query)  #查询Query
    app=Flask(__name__) #创建flask对象
    # /graphql:视图的URL, GraphQLView.as_view:将映射函数转换成视图函数 ,'grapql':视图名称  ,
    # 把schema注册到schema方法里, graphiql=True:开启插件应用
    app.add_url_rule('/graphql', view_func=GraphQLView.as_view('grapql', schema=schema, graphiql=True))
    app.run()

image.png

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

课程分类

百战程序员微信公众号

百战程序员微信小程序

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