PythonのFlaskフレームワークの下でsqlalchemyライブラリを使用する簡単なチュートリアル

4867 ワード

flaskのsqlalchemyはsqlalchemyパッケージよりも徹底的で、いくつかの方法では簡単です.
まずimportクラスライブラリ:
コード上でコードシートを見て私のコードシートに派生します

  from flask import Flask 
  from flask.ext.sqlalchemy import SQLAlchemy

 
次に、データベースパスをロードする必要があります.
コード上でコードシートを見て私のコードシートに派生します

  mysqlname='mysql://user:[email protected]/student?charset=utf8' 


コード上でコードシートを見て私のコードシートに派生します

  app = Flask(__name__) 
  app.config['SQLALCHEMY_DATABASE_URI'] = mysqlname 
  db = SQLAlchemy(app) 


前の2つのステップでflaskとデータベースを結びつけました
次にflaskと具体的なテーブルを結びつけます.
モデルモデルを構築します
コード上でコードシートを見て私のコードシートに派生します

  class User(db.Model): 
   
    """             ,              
    :param source: string ,     
    :param network_logic_area: string ,             
    :param start_time: datetime ,        
    """ 
   
    __tablename__ = 'hello' 
    id = db.Column(db.Integer , primary_key = True) 
    source = db.Column(db.String(255) ) 
    network_logic_area = db.Column(db.String(255) ) 
    start_time = db.Column(db.DateTime) 
    count = db.Column(db.Integer) 
   
    def __init__(self , source , network_logic_area , start_time , count): 
      self.source = source 
      self.network_logic_area = network_logic_area 
      self.start_time = start_time 
      self.count = count 
   
    def alter(self): 
      self.count += 1; 


上のコードはfalskと具体的なテーブルhelloを結びつけました
このクラスでは、まずテーブルを指定し、そのテーブルの列を列挙し、最後に初期化関数を定義し、後でデータを挿入して使用します.
次に、特定のデータベース操作を開始します.
1、insert
コード上でコードシートを見て私のコードシートに派生します

      p = User(........) 
      db.session.add(p) 
      db.session.commit() 


クラスUserでデータを構築
2、find
プライマリ・キーによるデータの取得:Code example:

User.query.get(1)




1つの正確なパラメータでチェック:Code example:

peter
=

User.query.filter_by(username='peter').first() 
#  :      query.filter_by(),           ;          query.filter(),           。

print(peter.id) 
#          None


ファジイクエリ:Code example:

User.query.filter(User.email.endswith('@example.com')).all()

[,
 ]


論理非1:Code example:

peter
=

User.query.filter(User.username
 !=

'peter').first()

print(peter.id)


論理非2:Code example:

from

sqlalchemy import

not_

peter
=

User.query.filter(not_(User.username=='peter')).first()

print(peter.id)


論理と:Code example:

from

sqlalchemy import

and_

peter
=

User.query.filter(and_(User.username=='peter',
 User.email.endswith('@example.com'))).first()

print(peter.id)


論理または:Code example:

from

sqlalchemy import

or_

peter
=

User.query.filter(or_(User.username
 !=

'peter',
 User.email.endswith('@example.com'))).first()

print(peter.id)


filter_by:これには具体的な条件しか入れられず、複雑な計算は入れられません.
filter:これには複雑な計算が入っています.
.first:最初のデータを取る
.all:すべてのデータを取り出します
ソートやカウントなどの操作が可能な他の方法もあります
3、sql文の使用
前に構築したdbでsqlの元の文を直接使用できます.
コード上でコードシートを見て私のコードシートに派生します

  insert_table.db.engine.execute(' ..... ') 


4、delete
コード上でコードシートを見て私のコードシートに派生します

  me = User(........) 


コード上でコードシートを見て私のコードシートに派生します

  db.session.delete(me) 
  db.session.commit() 


5、データの更新

Code example:
 
u
=

User.query.first()

u.username
=

'guest' 
#             ,             。

db.session.commit()