Django中的ORM 和入門基礎

day62  2018-06-12css

 

1. 內容回顧html

1. web框架的本質

1. socketpython

瀏覽器: socket客戶端mysql

服務器: socket服務端web

 

2. HTTP協議:規定了一個收發消息的格式sql

 

3. 消息分類數據庫

請求(request):瀏覽器向服務端發送的消息django

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. 做者

 

相關文章
相關標籤/搜索