<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 68 Flask-SQLAlchemy的使用詳解 ## 安裝 ```text pip install flask-sqlalchemy ``` ## 數據庫連接 ```text 1.定義數據庫連接字符串DB_URI 2.將定義好的數據庫連接字符串DB_URI放到配置文件中 app.config["SQLALCHEMY_DATABASE_URI"] = DB_URI 3.使用"flask_sqlalchemy.SQLAlchemy"類定義一個對象,并將"app"傳入進去 db = SQLAlchemy(app) ``` ## 創建ORM模型 ```text 1.定義模型,不使用"delarative_base"來創建一個基類,而是使用"db.Model"來作為基類 2.在模型類中,'Column'、'String'、'Integer'以及'relationship'等,直接使用db.xxx調用 "db.Column()" 3.在定義模型的時候,可以不寫"__tablename__",那么"flask_sqlalchemy"會默認使用當前的模型的名字轉換成小寫作為表的名字, 并且如果這個模型的名字使用了多個單詞并且使用了駝峰命名法,那么會在多個單詞之間會使用下劃線進行連接。 ''' # user_model class UserModel(db.Model) .... ''' ``` ## 將ORM模型映射到數據庫 ```text 1.db.drop_all() 2.db.create_all() ``` ## 使用session ```text 以后session也不需要使用"sessionmaker"來創建了,直接使用"db.session"就可以了。操作這個session的時候就跟之前的"sqlalchemy"的 "session"是一樣的。 ``` ## 查詢數據 ```text 如果查找數據只是查找一個模型上的數據,就可以通過"模型.query"的方式進行查找。"query"就跟之前的sqlalchemy中的query方法是一樣的。 ''' user = User.query.filter(User.id == 1).all() ''' ``` ## 完整代碼 ```text from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) HOSTNAME = "127.0.0.1" PORT = "3306" DATABASE = "first_flask" USERNAME = "root" PASSWORD = "123456" # dialect+dricer://username:password@host:port/database DB_URI = "mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8".format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE) # 配置 app.config["SQLALCHEMY_DATABASE_URI"] = DB_URI app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False # 數據庫 # db == > app # 通過db訪問app db = SQLAlchemy(app) # 定義orm模型 # 繼承自db.Model # UserModel == > user_model class User(db.Model): __tablename__ = "user" id = db.Column(db.Integer,primary_key=True,autoincrement=True) username = db.Column(db.String(50),nullable=False) def __repr__(self): return "<Article(username:%s)>" % self.username class Article(db.Model): __tablename__ = "article" id = db.Column(db.Integer,primary_key=True,autoincrement=True) title = db.Column(db.String(50),nullable=False) uid = db.Column(db.Integer,db.ForeignKey("user.id")) author = db.relationship("User",backref=db.backref("articles")) def __repr__(self): return "<Article(title:%s)>" % self.title @app.route('/') def hello_world(): return 'Hello World!' def init_data(): db.drop_all() db.create_all() user = User(username="angle") article = Article(title="title one") article.author = user # user.articles.append(article) db.session.add(article) db.session.commit() def query(): # db.session.query(User)與下面效果一樣 # order_by # filter # filter_by # group_by # join # subquery # user = User.query.filter(User.id == 1).all() # users = User.query.order_by(User.id.desc()).all() # print(users) # 過濾、刪除 user = User.query.filter(User.username == "angle3").first() db.session.delete(user) db.session.commit() if __name__ == '__main__': # init_data() query() # app.run() ```
                  <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>

                              哎呀哎呀视频在线观看