Django安裝、配置
0. Django安裝
pip3 install django==1.11.11(可到官網檢視長維護版本)
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11
PyCharm安裝的時候:
open in new window
1. Django專案的啟動:
1. 命令列啟動
在專案的根目錄下(也就是有manage.py的那個目錄),執行:
python3 manage.py runserver IP:埠--> 在指定的IP和埠啟動
python3 manage.py runserver 埠 --> 在指定的埠啟動
python3 manage.py runserver --> 預設在本機的8000埠啟動
2. PyCharm啟動
3. 配置相關 專案名/settings.py檔案
1. Templates(存放HTML檔案的配置) <-- 告訴Django去哪兒找我的HTML檔案
2. 靜態檔案(css/js/圖片)
# 靜態檔案儲存目錄的別名
STATIC_URL = '/static/'
# 所有靜態檔案(css/js/圖片)都放在我下面你配置的資料夾中
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
3. 註釋掉setting.py中 帶有 csrf 的那一行(大概45~47行)
4.Django中的APP:
方便我們在一個大的Django專案中,管理實現不同的業務功能.
1. 建立APP的命令
1. 命令列,在Django專案的根目錄輸入:
python3 manage.py startapp app名字
2.views.py
1. 專門用來定義處理請求的函式
1. 基本必備三件套
from django.shortcuts import HttpResponse, render, redirect
1. HttpResponse("要返回的內容") --> 通常用於直接返回資料
2. render(request, "html檔案", {"k1": v1}) --> 返回一個HTML檔案或者開啟檔案進行字串替換
3. redirect("URL") --> 告訴使用者的瀏覽器去訪問其他的URL
2. request相關
1. request.method --> 檢視請求的方法
2. request.POST --> 獲取POST請求的資料
5.ORM:
1.ORM的對應關係:
類 ---> 資料表
物件 ---> 資料行
屬性 ---> 欄位
2.使用Django的ORM詳細步驟:
1. 自己動手建立資料庫
create database 資料庫名;
2. 在Django專案中設定連線資料庫的相關配置(告訴Django連線哪一個資料庫)
# 資料庫相關的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 連線的資料庫型別
'HOST': '127.0.0.1', # 連線資料庫的地址
'PORT': 3306, # 埠
'NAME': "day61", # 資料庫名稱
'USER': 'root', # 使用者
'PASSWORD': '123456' # 密碼
}
}
3. 告訴Django用pymysql代替預設的MySQLDB 連線MySQL資料庫
在專案/__init__.py檔案中,寫下面兩句:
import pymysql
# 告訴Django用pymysql來代替預設的MySQLdb
pymysql.install_as_MySQLdb()
4. 在app下面的models.py檔案中定義一個類,這個類必須繼承models.Model
class 類名(models.Model):
...
5. 執行兩個命令
1. python3 manage.py makemigrations
2. python3 manage.py migrate
6.ORM單表的增加和查詢:
0.在app/models.py裡面定義類
# 出版社
class Publisher(models.Model):
id = models.AutoField(primary_key=True) # 自增的ID主鍵
# 建立一個varchar(64)的唯一的不為空的欄位
name = models.CharField(max_length=64, null=False, unique=True)
0.1執行兩個命令
1. python3 manage.py makemigrations --> 把models.py裡面的更改讀取出來
2. python3 manage.py migrate --> 把更改翻譯成SQL語句,去資料庫執行
1. 查詢
models.UserInfo.objects.all()
2. 增加
models.UserInfo.objects.create(name="張三")