python SQLAlchemy的簡單配置和查詢


背景:

今天小魚從0開始配置了下 SQLAlchemy 的連接方式,並查詢到了結果,記錄下來

 

需要操作四個地方

1. config  ------數據庫地址

2.init ----- 數據庫初始化

3.model ----- 數據庫表模型

4.增刪改查

用的包:Flask-SQLAlchemy (2.1) 

 

 

1.config

1 SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://tmadmin:zq@10.100.2.120/tm?charset=utf8'
2 SQLALCHEMY_COMMIT_ON_TEARDOWN = True
3 SQLALCHEMY_TRACK_MODIFICATIONS = False

 

 

2. init

1 from flask import Flask
2 from flask_sqlalchemy import SQLAlchemy
3 from xxxx import config #導入1中的配置
4 
5 app = Flask(__name__)
6 app.config.from_object(config)
7 db = SQLAlchemy(app)

 

3.model 

 

 1 from xxxx import db  #從2中導入db
 2  
 3 class TableName(db.Model):
 4      __tablename__ = 'tablename'
 5  
 6     id = db.Column(db.Integer, primary_key=True)
 7     name= db.Column(db.String(100))
 8     datetime = db.Column(db.DateTime)
 9 
10     #to_json 方便后面查詢使用
11     def to_json(self):
12         dict = self.__dict__
13         if "_sa_instance_state" in dict:
14             del dict["_sa_instance_state"]
15         return dict
16 
17     def __repr__(self):
18          return '<TableName%r>' % self.id

 

 

4.查詢1

 

 1 from xxx.model import TableName  #從三中導入
 2 from sqlalchemy.sql import text,and_,or_,func
 3 
 4 
 5 table_name = TableName()
 6 
 7 #定義查詢條件
 8 sql_text = ' 1=1 and name like "%%{name}%%" 
 9  and id = {id}'.format(name=xx,id=xx)
10 
11 #條件、排序、分組
12 res = table_name.query.filter(text(sql_text)).order_by(text("id desc")).limit(xxx).group_by(text("name")).all()
13 
14 #結果展示 [{"name":"xxx","id":xxx}········]
15 data = [i.to_json() for i in res]

 

 

其他增刪改查 語句可查詢相關文檔,如:

https://www.cnblogs.com/zhangju/p/5720210.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM