Falsk web 基本知識點2

2021-09-25 02:27:23 字數 2783 閱讀 7626

一:傳送郵件二: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 伺服器不...