Django中的ORM 和入門基礎
day62 2018-06-12
1. 內容回顧
1. web框架的本質
1. socket
瀏覽器: socket客戶端
服務器: socket服務端
2. HTTP協議:規定了一個收發消息的格式
3. 消息分類
請求(request):瀏覽器向服務端發送的消息
GET /index/ HTTP/1.1\r\n
k1:v1\r\n
...\r\n
\r\n
請求體
響應(response):
HTTP/1.1 200 OK\r\n
k1:v1\r\n
...\r\n
\r\n
響應體 --> 瀏覽器顯示的那部分內容
2. Python Web框架分類
功能分類:
a: 收發消息相關(socket)
b: 根據不用的URL執行不同的函數(業務邏輯相關的)
c: 實現動態網頁(字符串的替換)
Web框架分類:
1. 自己實現b,c,使用第三方的a --> Django
2. 自己實現b,使用第三方的a和c --> Flask
3. 自己實現a\b\c --> Tornado
Django是一個大而全的web框架。
3. 兩個模塊
web服務器程序 <--WSGI協議--> web應用程序
1. wsgiref
Django開發環境使用的就是wsgiref模塊
2. jinja2(Flask)
渲染HTML頁面,其實就是實現字符串的替換。
4. Django
1. Django安裝
2. 新建Django項目並啟動
3. 三件套
4. templates的配置
5. 靜態文件的配置
2. 今日內容
1. 登錄功能的實現
1. form表單提交數據的註意事項:
1. 是form不是from,必須要有method和action
2. 所有獲取用戶輸入的表單標簽要放在form表單裏面,表單標簽必須要有name屬性
3. form表單必須要有submit按鈕
2. GET和POST
什麽時候用GET:
向服務端請求一個網頁的時候
搜索引擎檢索時
什麽時候用POST:
使用表單向服務器提交數據時
3. request.method --> 獲取的是你請求的方法(GET/POST...)必須是大寫!!!
4. request.POST --> 獲取POST提交過來的全部數據(字典)
5. redirect --> 跳轉到指定頁面!!!
基礎必會三件套:
1. HttpResponse("OK")
2. render(request, "login.html")
3. redirect("URL")
6. app
project (學校)
- app (學院)
創建APP:
python3 manage.py startapp app01
創建好APP,記得告訴Django, 我有這個app
在settings.py中,
# 安裝的app都有哪一些
INSTALLED_APPS = [
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
‘app01‘,
# ‘app01.apps.App01Config‘,
]
Django中的數據庫
2. ORM(對象關系映射)
1. pymysql
import pymysql
conn = pymysql.connect(
host="127.0.0.1",
port=3306,
user="root",
password="123",
database="day62",
charset="utf8"
)
cursor = conn.cursor()
cursor.execute("slect * from user;")
ret = cursor.fetchall()
2. 我們寫原生css和用jQuery
document.getElementById(id)
$("#id")
數據表 類
數據行 實例對象
字段 屬性
代碼操作數據庫的方式;
直接執行SQL
優點:執行效率高
缺點:開發效率低
按照特定的語法寫,翻譯成SQL語句再去執行
優點:開發效率高
缺點:執行效率低,你會忘記SQL語句
ORM:
sqlAlchemy Flask裏面也有一個orm就是sqlAlchemy
ORM和原生的SQL語句,根據具體的應用場景自行取舍。
Django項目使用MySQL數據庫
1. 在Django項目的settings.py文件中,配置數據庫連接信息:
Django裏面的ORM的使用:
1. 告訴Django連接那個數據庫
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘: ‘day62‘,
‘HOST‘: ‘127.0.0.1‘,
‘PORT‘: 3306,
‘USER‘: ‘root‘,
‘PASSWORD‘: ‘123‘,
}
}
2. 告訴Django怎麽連接
Django默認使用的是 MySQLdb模塊 連接數據庫
告訴Django用pymysql這個模塊去連接MySQL
在settings.py同目錄下的__init__.py文件中,指定使用pymysql模塊代替MySQLdb
import pymysql
pymysql.install_as_MySQLdb()
3. 在app/models.py文件中定義類
一定要繼承models.Model
4. 執行創建表的操作
1. python3 manage.py makemigrations --> 將models.py的修改登記到小本本上
2. python3 manage.py migrate --> 將修改翻譯成SQL語句,去數據庫執行
重點來了!!!!為了讓我們好區分 做了一個順序區分
先創建一個django項目
3. 圖書管理系統
1. 表結構設計
1. 出版社
2. 書
3. 作者
Django中的ORM 和入門基礎