1. 請求(request) ---> 瀏覽器端的請求
請求方法 路徑 HTTP/1.1\r\n
k1:v1\r\n
...\r\n
\r\n
請求體 <-- 能夠有,能夠沒有css
2. 響應(response) ---> 服務器端的響應
HTTP/1.1 狀態碼 狀態描述符\r\n
k1:v1\r\n
Content-Type: text/html; charset=utf8\r\n
\r\n
響應正文 <-- HTML內容html
GET請求和POST請求都屬於HTTP協議規定的請求方法。python
1. 何時用GET請求?
1. 瀏覽器想要獲得一個HTML頁面的時候
2. 搜索引擎查詢關鍵字的時候,例如www.sogo.com/web/?query=迪麗熱巴
2. 何時用POST?
瀏覽器向服務器提交數據,好比登陸、註冊、上傳文件等mysql
3. 實際中GET和POST的應用場景
1. GET:
1. 直接在瀏覽器地址欄輸入URL訪問網站
2. a標籤
2. POST:
1. 登陸註冊
2. 修改(新增)大段的數據
3. 上傳文件web
1.按上面三個功能劃分:sql
2. 按另外一個維度來劃分:數據庫
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MVC的框架模式,即模型M,視圖V和控制器C。它們各自的職責以下:django
層次
|
職責
|
模型(Model),即數據存取層
|
處理與數據相關的全部事務: 如何存取、如何驗證有效性、包含哪些行爲以及數據之間的關係等。
|
模板(Template),即業務邏輯層
|
處理與表現相關的決定: 如何在頁面或其餘類型文檔中進行顯示。
|
視圖(View),即表現層
|
存取模型及調取恰當模板的相關邏輯。模型與模板的橋樑。
|
pip3 install django==1.11.11 ---> 指定要按安裝的版本瀏覽器
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11 ---> 指定源和版本安裝服務器
pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com django==1.11.11 ---> 源爲http時
到你要保存Django項目的目錄下執行 django-admin startproject 工程名
django-admin startapp app名
在項目的根目錄下(也就是有manage.py的那個目錄),運行:
1. Templates(存放HTML文件的配置) <-- 告訴Django去哪兒找個人HTML文件
2. 建立靜態文件文件夾(通常命名爲static,存放css/js/圖片等)
在settings.py下的STATIC_URL = '/static/' 表明靜態文件保存目錄的別名,引用時就是引用此名字而不是存放html文件的文件夾名字!
同時新增以下:
STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static") ] # 靜態文件的真實路徑
3. 註釋掉setting.py中 帶有 csrf 的那一行
4. 配置APP
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.App01Config', 'app02.apps.App02Config', 'app03.apps.App03Config', ..., ] # 在這裏增長APP的關聯關係
5. 修改數據庫鏈接配置(以mysql爲例)
1. 在setting.py文件下的修改以下:
1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql', # 數據庫引擎(這裏使用mysql) 4 "NAME": "djangoapp01", # 數據庫 5 'HOST': "127.0.0.1", # IP地址 6 "PORT": 3306, # 端口號 7 "USER": "root", # 用戶名 8 "PASSWORD": "mysql123", # 密碼 9 } 10 }
2. 告訴Django用pymysql代替默認的MySQLDB 鏈接MySQL數據庫,在項目同名的文件夾下的/__init__.py文件中(不是app的/__init__.py文件!),寫下面兩句:
import pymysql pymysql.install_as_MySQLdb()
類 ---> 數據表
對象 ---> 數據行
屬性 ---> 字段
ORM只能操做數據表和數據行,不能操做數據庫,數據庫必需要手工建立。
一、在app/models.py裏面定義類,類名即表名。
class Publisher(models.Model): id = models.AutoField(primary_key=True) # 自增的ID主鍵 name = models.CharField(max_length=64, null=False, unique=True) # 建立一個varchar(64)的惟一的不爲空的字段
二、將數據update至數據庫中
1. python3 manage.py makemigrations --> 把models.py裏面的更改記錄至app下的migrations下的.py文件 2. python3 manage.py migrate --> 把更改翻譯成SQL語句,去數據庫執行