<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      單表操作

      @app.route("/add_book")
      def add_book():
          ro1 = Books(name='三國(guó)演義')#增加Books中name為三國(guó)演義的數(shù)據(jù)
          db.session.add(ro1)#增加
          db.session.commit()#提交
          return "添加成功"

       

      @app.route("/del_book")
      def del_book():
          rol = Books.query.filter_by(name="水滸傳").first()#刪除Books中name為水滸傳的數(shù)據(jù),其中query固定寫(xiě)法,first第一個(gè)
          db.session.delete(rol)#刪除
          db.session.commit()#提交
          return "刪除成功"

       

      @app.route("/alter_book")
      def alter_book():
          rol = Books.query.filter_by(name="三國(guó)演義").first()#與刪除大致相同
          rol.name = "射雕英雄傳"#更改內(nèi)容
          db.session.commit()#提交
          return "修改成功"

       

      SQLAlchemy中關(guān)于查詢(xún)分為兩部分:一個(gè)是查詢(xún)過(guò)濾器,一個(gè)是查詢(xún)執(zhí)行器。

      過(guò)濾器

      過(guò)濾器說(shuō)明
      filter() 把過(guò)濾器添加到原查詢(xún)上,返回一個(gè)新查詢(xún)
      filter_by() 把等值過(guò)濾器添加到原查詢(xún)上,返回一個(gè)新查詢(xún)
      limit 使用指定的值限定原查詢(xún)返回的結(jié)果
      offset() 偏移原查詢(xún)返回的結(jié)果,返回一個(gè)新查詢(xún)
      order_by() 根據(jù)指定條件對(duì)原查詢(xún)結(jié)果進(jìn)行排序,返回一個(gè)新查詢(xún)
      group_by() 根據(jù)指定條件對(duì)原查詢(xún)結(jié)果進(jìn)行分組,返回一個(gè)新查詢(xún)

      執(zhí)行器

      方法說(shuō)明
      all() 以列表形式返回查詢(xún)的所有結(jié)果
      first() 返回查詢(xún)的第一個(gè)結(jié)果,如果未查到,返回None
      first_or_404() 返回查詢(xún)的第一個(gè)結(jié)果,如果未查到,返回404
      get() 返回指定主鍵對(duì)應(yīng)的行,如不存在,返回None
      get_or_404() 返回指定主鍵對(duì)應(yīng)的行,如不存在,返回404
      count() 返回查詢(xún)結(jié)果的數(shù)量
      paginate() 返回一個(gè)Paginate對(duì)象,它包含指定范圍內(nèi)的結(jié)果

       

      一對(duì)多表

      在多的一方創(chuàng)建一個(gè)字段指向另一個(gè)表中的唯一標(biāo)識(shí)(id),外鍵

      增刪與單表操作大致相同

      查詢(xún)數(shù)據(jù)

      @app.route("/select_book")
      def select_book():
          # 目標(biāo):查詢(xún)南方出版社出版的書(shū)籍
          res = Publishers.query.filter(Publishers.name == "南方出版社").first()
          rols = Books.query.filter(Books.publish_id == res.id).all()
          print(rols)
          return "查詢(xún)成功"

      簡(jiǎn):在表中設(shè)置字段時(shí)添加一個(gè)內(nèi)容(紅色),操作方法變簡(jiǎn)

      class Publishers(db.Model):
          __tablename__ = 'publishers'
          id = db.Column(db.Integer, primary_key=True)
          name = db.Column(db.String(64))
          city = db.Column(db.String(64))
          to_book = db.relationship("Book")#Book是表模型類(lèi)名
      
          def __repr__(self):
              return 'User:%s' % self.name
      
      @app.route("/select_book")
      def select_book():
          # 目標(biāo):查詢(xún)南方出版社出版的書(shū)籍
          res = Publishers.query.filter(Publishers.name == "南方出版社").first().to_book
          print(res)
          return "查詢(xún)成功"

       

      class Publishers(db.Model):
          __tablename__ = 'publishers'
          id = db.Column(db.Integer, primary_key=True)
          name = db.Column(db.String(64))
          city = db.Column(db.String(64))
          to_book = db.relationship("Book",backref="to_pub")#Book是表模型類(lèi)名,backref是反向查詢(xún),不用在Book的表查詢(xún)pub再?gòu)?fù)制relationship的代碼
      
          def __repr__(self):
              return 'User:%s' % self.name
      
      @app.route("/select_book")
      def select_book():
          # 目標(biāo):查詢(xún)南方出版社出版的書(shū)籍
          res = Publishers.query.filter(Publishers.name == "南方出版社").first().to_book
          print(res)
          return "查詢(xún)成功"

       多對(duì)多

      新建一張表用多個(gè)外鍵將多張表關(guān)聯(lián)

      class Bookspri(db.Model):
          id = db.Column(db.Integer, primary_key=True)
          book_id=db.Column(db.Integer,db.ForeignKey("book.id"))#設(shè)置外鍵,表名.字段名
          author_id=db.Column(db.Integer,db.ForeignKey("author.id"))#設(shè)置外鍵,表名.字段名

       (刪除book中的一行內(nèi)容會(huì)將關(guān)聯(lián)的內(nèi)容也刪除)

      (使用relationship關(guān)聯(lián)第三張表的secondary="author__book"其中自動(dòng)的表名下劃線會(huì)將一個(gè)變成兩個(gè),除非自己使用__tablename__設(shè)置表名)

      from flask import Flask
      from flask_sqlalchemy import SQLAlchemy
      
      
      class Config(object):
          DEBUG = True
          SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/demo1"
          SQLALCHEMY_TRACK_MODIFICATIONS = False
      
      
      app = Flask(__name__)
      app.config.from_object(Config)
      db = SQLAlchemy(app)
      
      
      # 圖書(shū)表
      class Book(db.Model):
          id = db.Column(db.Integer, primary_key=True)
          title = db.Column(db.String(64), nullable=False)
          price = db.Column(db.Integer)
          pub_id = db.Column(db.Integer, db.ForeignKey("publisher.id"))
          # to_pub = db.relationship("Publisher")
          authors = db.relationship("Author", secondary="author__book", backref="books")
      
          def __repr__(self):
              return "圖書(shū)名:%s|價(jià)格為%s" % (self.title, self.price)
      
      
      # 出版社表
      class Publisher(db.Model):
          id = db.Column(db.Integer, primary_key=True)
          name = db.Column(db.String(64), nullable=False)
          address = db.Column(db.String(64), nullable=False)
          to_books = db.relationship("Book", backref="to_pub")
      
      
      # 作者表
      class Author(db.Model):
          id = db.Column(db.Integer, primary_key=True)
          name = db.Column(db.String(64), nullable=False)
          age = db.Column(db.Integer)
      
      
      class Author_Book(db.Model):
          id = db.Column(db.Integer, primary_key=True)
          author_id = db.Column(db.Integer, db.ForeignKey("author.id"))
          book_id = db.Column(db.Integer, db.ForeignKey("book.id"))
      
      
      @app.route("/", methods=["
      
      
      
      
      主站蜘蛛池模板:
      少妇人妻偷人精品免费|
      国产综合久久久久久鬼色|
      香蕉久久夜色精品国产成人|
      国产一级r片内射免费视频|
      免费无码AV一区二区波多野结衣|
      欧美丰满熟妇xxxx性|
      中文午夜乱理片无码|
      中文字幕人妻有码久视频|
      十八禁午夜福利免费网站|
      浪潮av色综合久久天堂|
      亚洲av永久无码精品成人|
      毛葺葺老太做受视频|
      美乳丰满人妻无码视频|
      女同另类激情在线三区|
      国产18禁一区二区三区|
      亚洲电影在线观看|
      色综合一本到久久亚洲91|
      少妇人妻偷人精品无码视频|
      亚洲乱码一二三四区国产|
      国产日韩精品欧美一区灰|
      欧美人成在线播放网站免费|
      99午夜精品亚洲一区二区|
      欧洲精品色在线观看|
      美女胸18下看禁止免费视频|
      国产精品系列在线免费看|
      97久久精品无码一区二区天美|
      天天摸天天做天天添欧美|
      2020中文字字幕在线不卡|
      欧美成人猛片aaaaaaa|
      一个人免费观看WWW在线视频|
      忘忧草www日本韩国|
      a级亚洲片精品久久久久久久|
      成人午夜视频一区二区无码|
      国产AV福利第一精品|
      国日韩精品一区二区三区|
      国偷自产一区二区免费视频|
      国产精品天天看天天狠|
      日韩欧美亚洲综合久久|
      国产一区二区不卡91|
      亚洲av产在线精品亚洲第一站|
      欧美福利电影A在线播放|