1. 程式人生 > >Django中的ORM 和入門基礎

Django中的ORM 和入門基礎

操作 也有 day6 實例 star 技術分享 \n 使用 stat

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 和入門基礎