前言:本文是學習網易微專業的《python全棧工程師 - flask高階建站》課程的筆記,歡迎學習交流。同時感謝老師們的精彩傳授!一、課程目標
二、詳情解讀
2.1.資料庫入門
2.1.1.資料庫用來儲存資料,根據儲存方式不同分為:
1.關係型資料庫 - 以檔案方式永久的儲存到磁碟
2.非關係型資料庫 - 儲存在記憶體,訪問速度很快,通常用來做佇列,快取之類的服務
2.1.2.關係型資料庫儲存方式:
表中的每一行由多個字段組成,代表乙個使用者,這在資料庫設計中,乙個使用者表述為乙個實體
2.1.3.乙個資料庫包含多張表:
如何提高資料庫的效能是我們學習的重點!
2.1.4.資料庫軟體:
1.資料庫軟體提供的是資料庫支援服務,有很多產品,比如sqlite、mysql、mssql、oracle
2.一般的關係型資料庫都需要先啟動乙個資料庫伺服器
3.sqlite
是乙個輕量的文字資料庫,python
自帶,無需安裝,也無需啟動伺服器
4.python
需要使用對應的資料庫客戶端模組才能訪問資料庫
5.所有的關係型資料庫都使用sql
語言對資料庫進行curd
操作(建立,更新,讀取,刪除)
2.2.orm與sqlalchemy
2.2.1.orm是什麼
2.2.2.sqlalchemy是什麼
sqlalchemy
是一款orm
具體實現的庫。在flask
中,可以使用flask_sqlalchemy
外掛程式,外掛程式安裝:
pip install flask-sqlalchemy
安裝成功後,會生成名為flask_sqlalchemy
模組,資料查詢:
2.3.配置sqlalchemy
2.3.1.建立資料庫物件
from flask_sqlalchemy import sqlalchemy
# 新增配置,否則資料庫會報警告
'sqlalchemy_track_modifications']=
true
# 配置資料庫
'sqlalchemy_database_uri']=
"sqlite:/"
2.3.2.sqlite資料庫管理軟體
為了方便觀察建立資料表的過程,可以安裝sqlite管理模組。安裝:
pip install sqlite-web
這是一款通過web介面的方式管理資料庫。安裝後,使用:sqlite_web sqlite資料庫檔案路徑
,即可管理資料庫。
2.4.建立資料模型model
2.4.1.定義資料表模型
自定義模型繼承自db.model
class
user
(db.model):id
= db.column(db.integer, primary_key=
true
) username = db.column(db.string)
password = db.column(db.string)
realname = db.column(db.string)
age = db.column(db.integer)
db.column
(字段型別,可選引數):
字段型別
標識整型
integer
字串型string
文字型text
日期datetime
是否為主鍵
primary_key
2.4.2.進入flask shell環境建立資料表
建立完模型後,只是建立了python
物件,但是並沒有建立資料表。還需要通過db.create_all()
建立資料表
# flask shell
>>
>>
> db.create_all(
)
2.5.儲存資料
通過例項化模型物件即可建立乙個新的物件(c - 新增記錄)
step1 - 例項物件
:
user1 = user(username =
"wanger"
, password =
"123456"
, realname=
"王二"
)user2 = user(username =
"zhangsan"
, password =
"123456"
, realname =
"zhangsan"
)
step2 - 提交到資料庫
:
建立後,db.session
物件可以將建立的記錄儲存到資料庫
db.session.add(user1)
db.session.add(user2)
db.session.commit(
)
2.6.orm的好處
2.6.1.orm與sql操作對比:
#sql
insert into table(username, password, realname) values(
"", "", "");
select * from table where id
= 1
# orm
user1 = user(
"wanger", "123456", "王二"
)user.query.get(1)
2.6.2.sqlalchemy開發優勢
使用原生的sql
開發web
會有一些如下問題:
1.資料庫產品多,sql
語句可能有一定的差異,更換資料庫可能導致**重構
2.封裝性不夠,重複**多,**裡遍布sql
語句,不夠優雅
3.安全性不夠,可能會有注入漏洞
orm
對sql
操作進行了封裝:
1.更換資料庫只要更換資料庫源,無需改動**。
2.對資料庫的操作轉為對python
物件(model
)的操作。
3.提供了更好的安全性。
三、課程小結
day 6 22python多執行緒
殭屍程序 子程序結束,父類未結束 孤兒程序 父類程序over.子程序未結束 0號程序負責執行,1號程序負責生成,所有孤兒程序的收容所 孤兒程序 父類程序over 1號程序,永不結束 多執行緒的學習 使用執行緒的第一種方式,直接呼叫threading裡面的thread類 from threading ...
Python學習筆記一(Python資料型別)
python資料型別主要包括數字,字串,列表,元組和字典。字串,列表,元組和字典都是序列,序列最主要兩個特點是索引操作和切片操作,索引操作讓我們從序列中抓取乙個特定專案,切片操作讓我們能夠獲取序列的乙個切片,即一部分序列。1.數字 python支援五種基本數字型別,其中有三種是整數型別。int 有符...
學習筆記 Python 資料型別
資料型別 classinfo 基礎資料型別 資料型別 備註示例 number 數字 python支援四種不同的數字型別 int 有符號整型 long 長整型 也可以代表八進位制和十六進製制 float 浮點型 complex 複數 a 1string 字串 使用引號,包括str和basestring...