1.關系型數據庫
代碼如下:
apt-get安裝mysql服務器
apt-get安裝mysql客戶端
apt-get安裝libmysqlclient15-dev
2.python-mysqldb
代碼如下:
apt-get安裝python-mysqldb
3 .簡單安裝
代碼如下:
wget munity.com/dist/ez_setup.py
python ez_setup.py
4.MySQL-Python
代碼如下:
簡單安裝MySQL-Python
5.SQLAlchemy
代碼如下:
easy_install SQLAlchemy
6.安裝後,使用以下代碼測試連接。
代碼如下:
從sqlalchemy導入創建引擎
從sqlalchemy.orm導入會話標記
DB _ CONNECT _ STRING = ' MySQL+mysqldb://root:123 @ localhost/ooxx?' charset=utf8 '
引擎=創建引擎(數據庫連接字符串,回聲=真)
DB _ Session = Session maker(bind =引擎)
會話=數據庫會話()
7、數據操作(添加、刪除和修改)
代碼如下:
from sqlalchemy導入函數,or_,not_
用戶=用戶(名稱='a ')
session.add(用戶)
用戶=用戶(名稱='b ')
session.add(用戶)
用戶=用戶(名稱='a ')
session.add(用戶)
用戶=用戶()
session.add(用戶)
session.commit()
query = session.query(用戶)
打印查詢#顯示SQL語句。
打印查詢.語句#同上
對於查詢中的用戶:#遍歷期間的查詢
打印用戶名
Print query.all() #返回壹個類似列表的對象。
當打印query.first()時。name # record不存在,first()將返回None。
# print query.one()。名稱#不存在,否則當有多行記錄時將引發異常。
打印query.filter(User.id == 2)。首先()。名字
打印query.get(2)。name #是通過主鍵得到的,相當於上面那句話。
PrintQuery。篩選器(' ID = 2 ')。首先()。Name #支持字符串。
query2 = session.query(用戶名)
打印query2.all() #每行是壹個元組。
PrintQuery2.limit (1)。All () #最多返回1條記錄。
PrintQuery2.offset (1)。All () #從第二條記錄返回。
打印query2.order_by(User.name)。全部()
打印query2.order_by('name ')。全部()
打印query2.order_by(User.name.desc())。全部()
打印query2.order_by('姓名desc ')。全部()
打印session.query(用戶id)。order_by(User.name.desc(),User.id)。全部()
print query 2 . filter(user . id = = 1)。Scalar () #如果有記錄,返回第壹條記錄的第壹個元素。
打印session.query('id ')。select_from(用戶)。篩選器(' id = 1 ')。標量()
打印query 2 . filter(user . id & gt;1,用戶名!= 'a ')。標量()#和
query 3 = query 2 . filter(user . id & gt;1) #多次拼接的濾鏡也是和。
query3 = query3.filter(User.name!= 'a ')
打印query3.scalar()
打印query 2 . filter(or _(user . id = = 1,User.id == 2))。all() #或
打印query 2 . filter(user . id . in _((1,2)))。all() # in
query4 = session.query(User.id)
打印query4.filter(User.name == None)。標量()
打印query4.filter('name為null ')。標量()
打印query 4 . filter(not _(user . name = = None))。all() # not
打印query4.filter(User.name!=無)。全部()
打印query4.count()
打印session.query(func.count('*))。select_from(用戶)。標量()
打印session . query(func . count(' 1 '))。select_from(用戶)。標量()
打印session . query(func . count(user . id))。標量()
打印session.query(func.count('*))。過濾器(User.id & gt0).scalar() # filter()包含用戶,因此不需要指定表。
Printsession。查詢(func。計數(' * ')。過濾器(用戶。name =' a ')。極限(1)。Scalar () = = 1 #可以使用limit()來限制count()的返回次數。
打印session.query(func.sum(User.id))。標量()
Printsession。Query (func.now())。Scalar () # func後面可以跟任何函數名,只要數據庫支持。
打印session . query(func . current _ timestamp())。標量()
打印session . query(func . MD5(user . name))。過濾器(User.id == 1)。標量()
query.filter(User.id == 1)。更新({User.name: 'c'})
user = query.get(1)
打印用戶名
user.name = 'd '
Session.flush() #寫入數據庫,但不提交它。
打印query.get(1)。名字
session.delete(用戶)
session.flush()
打印query.get(1)
session.rollback()
打印query.get(1)。名字
query.filter(User.id == 1)。刪除()
session.commit()
打印query.get(1)