一個完整的請求流程:
- 啓動服務端,等待客戶端(用戶瀏覽器)來鏈接
- 在瀏覽器地址欄輸入url,與服務端建立鏈接,瀏覽器發送請求
- 服務端收到請求消息,解析請求消息,根據路徑和函數的對應關係,找到將要執行的函數
- 執行函數,打開html文件,進行字符串替換,得到了一個最終要執行的函數
- 按照http協議的消息格式要求,把html內容回覆給用戶瀏覽器(發送響應)
- 瀏覽器收到響應的消息之後,按照html的規則渲染頁面
- 關閉鏈接
本次使用django版本是1.11 lts長期版本
安裝
pip install django==1.11
創建項目
django-admin startproject mysite
項目的啓動
python manage.py runserver ip:端口 --> 指定ip和端口啓動 python manage.py runserver 端口 --> 指定端口啓動 python manage.py runserver --> 默認在本機的8000端口執行
配置相關:
1.Templates(存放HTML文件的配置)
- 在項目下新建templates目錄
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
2.靜態文件(css/js/圖片)
- 在項目下創建static目錄
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
3註釋掉setting.py中帶有csrf的那一行(大概45~47行)
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
創建app
- 方便我們在一個大的django項目中,管理實現不同的業務功能
python manage.py startapp myapp
- 創建玩app還要告訴django
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp.apps.MyappConfig' ]
ORM
- 不同的程序員寫的sql水平參差不齊
- 執行效率也參差不齊
python語法 --自動翻譯--> sql語句
類似於:
jquery DOM
$("#d1") --自動翻譯--> document.getElementById("d1")
ORM的對應關係:
類 ---> 數據表 對象 ---> 數據行 屬性 ---> 字段
優點
- 簡單,不用自己寫sql語句
- 開發效率高
缺點
- 記憶特殊語法
- 相對於老司機寫的sql,執行效率有缺點
能做的事情:
- 操作數據表 ---> 創建表,刪除表,修改表(操作models.py中的字段)
2, 操作數據行 ---> 數據的增刪改查
不能做的事情: 不能創建數據庫,(自己動手創建數據庫)
django的ORM詳細操作
Mac 推薦使用homebrew安裝mysql
brew install mysql
啓動停止和重啓數據庫服務
Brew services start mysql
Brew services stop mysql
Brew services restart mysql
1自己動手創建數據庫
create database django111
2在django項目中設置連接數據庫的相關配置(告訴django鏈接哪一個數據庫)/settings
DATABASES = { 'default': { # 連接的數據庫類型 'ENGINE': 'django.db.backends.mysql', # 數據庫的地址 'HOST': '127.0.0.1', # 端口 'PORT': '3306', # 數據庫名稱 'NAME': 'django111', # 用戶 'USER': 'root', # 密碼 'PASSWORD': 'sunlizhao' } }
3告訴django用pymysql代替默認的mysqldb來鏈接mysql
- 在項目的__init__.py文件中,寫入如下:
import pymysql pymysql.install_as_MySQLdb()
4,在app下面的models.py文件中定義一個類,這個類必須繼承models.Model
class UserInfo(models.Model): # 創建一個自增的主鍵字段 id = models.AutoField(primary_key=True) # 創建一個varchar(20)的不爲空的字段 name = models.CharField(null=False, max_length=20)
5執行兩個命令
#將改動記錄下來 python manage.py makemigrations #去數據庫中執行 python manage.py migrate