<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # python3怎么用sqlalchemy操作mysql ``` <pre class="calibre15">``` 第一步 python需要安裝pymysql mysqldb不可用于python3 第二步使用 url鏈接 鏈接字符串 dialect<span class="token">+</span>driver<span class="token1">:</span><span class="token">/</span><span class="token">/</span>username<span class="token1">:</span>password@host<span class="token1">:</span>port<span class="token">/</span>database 在config中寫配置 # 增加: article1 <span class="token">=</span> <span class="token3">Article</span><span class="token1">(</span>title<span class="token">=</span><span class="token4">'aaa'</span><span class="token1">,</span>content<span class="token">=</span><span class="token4">'bbb'</span><span class="token1">)</span> db<span class="token1">.</span>session<span class="token1">.</span><span class="token3">add</span><span class="token1">(</span>article1<span class="token1">)</span> # 事務 db<span class="token1">.</span>session<span class="token1">.</span><span class="token3">commit</span><span class="token1">(</span><span class="token1">)</span> # 查 # select <span class="token">*</span> <span class="token2">from</span> article where article<span class="token1">.</span>title<span class="token">=</span><span class="token4">'aaa'</span><span class="token1">;</span> article1 <span class="token">=</span> Article<span class="token1">.</span>query<span class="token1">.</span><span class="token3">filter</span><span class="token1">(</span>Article<span class="token1">.</span>title <span class="token">==</span> <span class="token4">'aaa'</span><span class="token1">)</span><span class="token1">.</span><span class="token3">first</span><span class="token1">(</span><span class="token1">)</span> print <span class="token4">'title:%s'</span> <span class="token">%</span> article1<span class="token1">.</span>title print <span class="token4">'content:%s'</span> <span class="token">%</span> article1<span class="token1">.</span>content <span class="token5">3.</span> 改: <span><span class="token4">``</span></span><span><span class="token4">` # 改: # 1\. 先把你要更改的數據查找出來 article1 = Article.query.filter(Article.title == 'aaa').first() # 2\. 把這條數據,你需要修改的地方進行修改 article1.title = 'new title' # 3\. 做事務的提交 db.session.commit() # 刪 # 1\. 把需要刪除的數據查找出來 article1 = Article.query.filter(Article.content == 'bbb').first() # 2\. 把這條數據刪除掉 db.session.delete(article1) # 3\. 做事務提交 db.session.commit() `</span></span><span><span class="token4">``</span></span> ### Flask<span class="token">-</span>SQLAlchemy外鍵及其關系: <span class="token5">1.</span> 外鍵: <span><span class="token4">``</span></span><span><span class="token4">` class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer,primary_key=True,autoincrement=True) username = db.Column(db.String(100),nullable=False) class Article(db.Model): __tablename__ = 'article' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(100),nullable=False) content = db.Column(db.Text,nullable=False) author_id = db.Column(db.Integer,db.ForeignKey('user.id')) author = db.relationship('User',backref=db.backref('articles')) `</span></span><span><span class="token4">``</span></span> <span class="token5">2.</span> <span><span class="token4">`author = db.relationship('User',backref=db.backref('articles'))`</span></span>解釋: <span class="token">*</span> 給<span><span class="token4">`Article`</span></span>這個模型添加一個<span><span class="token4">`author`</span></span>屬性,可以訪問這篇文章的作者的數據,像訪問普通模型一樣。 <span class="token">*</span> <span><span class="token4">`backref`</span></span>是定義反向引用,可以通過<span><span class="token4">`User.articles`</span></span>訪問這個模型所寫的所有文章。 <span class="token5">3.</span> 多對多: <span class="token">*</span> 多對多的關系,要通過一個中間表進行關聯。 <span class="token">*</span> 中間表,不能通過<span><span class="token4">`class`</span></span>的方式實現,只能通過<span><span class="token4">`db.Table`</span></span>的方式實現。 <span class="token">*</span> 設置關聯:<span><span class="token4">`tags = db.relationship('Tag',secondary=article_tag,backref=db.backref('articles'))`</span></span>需要使用一個關鍵字參數<span><span class="token4">`secondary=中間表`</span></span>來進行關聯。 <span class="token">*</span> 訪問和數據添加可以通過以下方式進行操作: <span class="token">*</span> 添加數據: <span><span class="token4">``</span></span><span><span class="token4">` article1 = Article(title='aaa') article2 = Article(title='bbb') tag1 = Tag(name='111') tag2 = Tag(name='222') article1.tags.append(tag1) article1.tags.append(tag2) article2.tags.append(tag1) article2.tags.append(tag2) db.session.add(article1) db.session.add(article2) db.session.add(tag1) db.session.add(tag2) db.session.commit() `</span></span><span><span class="token4">``</span></span> <span class="token">*</span> 訪問數據: <span><span class="token4">``</span></span><span><span class="token4">` article1 = Article.query.filter(Article.title == 'aaa').first() tags = article1.tags for tag in tags: print tag.name `</span></span><span><span class="token4">``</span></span> ### Flask<span class="token">-</span>Script的介紹與安裝: <span class="token5">1.</span> Flask<span class="token">-</span>Script:Flask<span class="token">-</span>Script的作用是可以通過命令行的形式來操作Flask。例如通過命令跑一個開發版本的服務器、設置數據庫,定時任務等。 <span class="token5">2.</span> 安裝:首先進入到虛擬環境中,然后<span><span class="token4">`pip install flask-script`</span></span>來進行安裝。 <span class="token5">3.</span> 如果直接在主<span><span class="token4">`manage.py`</span></span>中寫命令,那么在終端就只需要<span><span class="token4">`python manage.py command_name`</span></span>就可以了。 <span class="token5">4.</span> 如果把一些命令集中在一個文件中,那么在終端就需要輸入一個父命令,比如<span><span class="token4">`python manage.py db init`</span></span>。 <span class="token5">5.</span> 例子: <span><span class="token4">``</span></span><span><span class="token4">` from flask_script import Manager from flask_script_demo import app from db_scripts import DBManager manager = Manager(app) # 和數據庫相關的操作,我都放在一起 @manager.command def runserver(): print '服務器跑起來了!!!!!' manager.add_command('db',DBManager) if __name__ == '__main__': manager.run() `</span></span><span><span class="token4">``</span></span> <span class="token5">6.</span> 有子命令的例子: <span><span class="token4">``</span></span><span><span class="token4">` #encoding: utf-8 from flask_script import Manager DBManager = Manager() @DBManager.command def init(): print '數據庫初始化完成' @DBManager.command def migrate(): print '數據表遷移成功' `</span></span><span><span class="token4">``</span></span> ### 分開<span><span class="token4">`models`</span></span>以及解決循環引用: <span class="token5">1.</span> 分開models的目的:為了讓代碼更加方便的管理。 <span class="token5">2.</span> 如何解決循環引用:把<span><span class="token4">`db`</span></span>放在一個單獨的文件中,切斷循環引用的線條就可以了。 ### Flask<span class="token">-</span>Migrate的介紹與安裝: <span class="token5">1.</span> 介紹:因為采用<span><span class="token4">`db.create_all`</span></span>在后期修改字段的時候,不會自動的映射到數據庫中,必須刪除表,然后重新運行<span><span class="token4">`db.craete_all`</span></span>才會重新映射,這樣不符合我們的需求。因此flask<span class="token">-</span>migrate就是為了解決這個問題,她可以在每次修改模型后,可以將修改的東西映射到數據庫中。 <span class="token5">2.</span> 首先進入到你的虛擬環境中,然后使用<span><span class="token4">`pip install flask-migrate`</span></span>進行安裝就可以了。 <span class="token5">3.</span> 使用<span><span class="token4">`flask_migrate`</span></span>必須借助<span><span class="token4">`flask_scripts`</span></span>,這個包的<span><span class="token4">`MigrateCommand`</span></span>中包含了所有和數據庫相關的命令。 <span class="token5">4.</span> <span><span class="token4">`flask_migrate`</span></span>相關的命令: <span class="token">*</span> <span><span class="token4">`python manage.py db init`</span></span>:初始化一個遷移腳本的環境,只需要執行一次。 <span class="token">*</span> <span><span class="token4">`python manage.py db migrate`</span></span>:將模型生成遷移文件,只要模型更改了,就需要執行一遍這個命令。 <span class="token">*</span> <span><span class="token4">`python manage.py db upgrade`</span></span>:將遷移文件真正的映射到數據庫中。每次運行了<span><span class="token4">`migrate`</span></span>命令后,就記得要運行這個命令。 <span class="token5">5.</span> 注意點:需要將你想要映射到數據庫中的模型,都要導入到<span><span class="token4">`manage.py`</span></span>文件中,如果沒有導入進去,就不會映射到數據庫中。 <span class="token5">6.</span> <span><span class="token4">`manage.py`</span></span>的相關代碼: <span><span class="token4">``</span></span><span><span class="token4">` from flask_script import Manager from migrate_demo import app from flask_migrate import Migrate,MigrateCommand from exts import db from models import Article # init # migrate # upgrade # 模型 -> 遷移文件 -> 表 manager = Manager(app) # 1\. 要使用flask_migrate,必須綁定app和db migrate = Migrate(app,db) # 2\. 把MigrateCommand命令添加到manager中 manager.add_command('db',MigrateCommand) if __name__ == '__main__': manager.run() `</span></span><span><span class="token4">``</span></span> ``` ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看