一:傳送郵件二:wtf表單
第三:一、什麼是物件關係對映
大部分程式語言都是物件導向的,採用物件模型。而資料被儲存在關聯式資料庫中的,資料採用的是關係模式。
關係模型和物件模型是有區別的,物件模型更加先進,能夠描述繼承、實現、關聯、聚合和組成等複雜的關係,而關係模型只能描述一對
一、一對多和多對多的關係。這兩種模型之間的不和諧稱為「阻抗不匹配」問題,而orm可以解決「阻抗不匹配」問題。
sqlalchemy是一種orm(物件關係對映)技術。orm是關係資料模型和物件模型類之間的乙個紐帶。
二、sqlalchemy使用
1、安裝sqlalchemy:
pip install flask-sqlalchemy
2、初始化sqlalchemy引擎
from sqlalchemy import create_engine
...db_files = 'db/database.db'
engine = create_engine('sqlite:///' + db_files, echo=true)
create_engine第乙個引數是資料庫連線,不同資料庫不同:
mysql資料庫:"mysql://scott:tiger@hostname/dbname"
mysql資料庫+pymysql:"mysql+pymysql://scott:tiger@hostname/dbname"
postgres資料庫:"postgresql://scott:tiger@hostname/dbname"
sqlite資料庫:"sqlite:///資料庫檔案路徑"
echo引數:設定為true,輸出sql執行語句。
3、定義資料模型
from sqlalchemy import column
from sqlalchemy import string
from sqlalchemy.ext.declarative import declarative_base
...base = declarative_base()
class user(base):
__tablename__ = 'users'
name = column('username', string(100), primary_key=true)
password = column('password', string(100))
email = column('email', string(50))
4、建立資料庫表
if __name__ == '__main__':
base.metadata.create_all(engine)
5、建立資料庫session物件
session = sessionmaker(bind=engine)
session = session()
session物件類似於資料庫的連線物件,常用方法:
session.add(new_user):插入資料。
session.delete(user):刪除使用者。
session.commit():提交資料庫事物。
session.rollback():回滾資料庫事物。
session.close():關閉session。
session.query(user):查詢方法,返回查詢物件query。
文件三、示例
1、查詢所有資料
# 查詢所有資料
def find_all():
session = sessionmaker(bind=engine)
session = session()
# 查詢返回的列表
list = session.query(user).all()
# 返回給檢視的列表
list2 =
for user in list:
dict = {}
dict['username'] = user.name
dict['password'] = user.password
dict['email'] = user.email
# 關閉session
session.close()
return list2
2、插入資料
def create(user):
session = sessionmaker(bind=engine)
session = session()
new_user = user(name=user['username'],
password=user['password'],
email=user['email'])
session.add(new_user)
# 提交資料庫事物
session.commit()
# 關閉session
session.close()
3、刪除資料
def remove(username):
session = sessionmaker(bind=engine)
session = session()
# 查詢使用者
user = session.query(user).filter_by(name=username).one()
# 刪除使用者
session.delete(user)
# 提交資料庫事物
session.commit()
# 關閉session
session.close()
基本知識點
1 程序和執行緒的關係 1 在有執行緒的作業系統裡面,程序是分配資源的基本單位,執行緒是排程的基本單位。2 1個程序可以擁有多個執行緒 3 執行緒同時也有一些自己的資源,包括 程式計數器,堆疊等 4 因為執行緒所擁有的資源比較少,因此進行排程的時候所消耗的資源就少。5 執行緒共享程序的 段,程序的一...
基本知識點
dram 動態隨機訪問儲存器 dynamic random access memory 隨機訪問的意思是,訪問任何乙個記憶體單元的速度和它的位置 位址 無關,讀寫位址0x00001和0xffff0所需要的事件是一樣的。rom 唯讀儲存器 read only memory 它的內容是預先寫入的,掉電也...
PHP基本知識點
1.http協議中幾個狀態碼的含義 503 500 401 200 301 302。http狀態碼 1 請求收到,繼續處理 2 操作成功收到,分析 接受 3 完成此請求必須進一步處理 4 請求包含乙個錯誤語法或不能完成 5 伺服器執行乙個完全有效請求失敗 500 伺服器產生內部錯誤 501 伺服器不...