講解對(duì)象:django項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)詳解
作者:融水公子rsgz
1 啟動(dòng)數(shù)據(jù)庫(kù)
net start mysql

2 登錄數(shù)據(jù)庫(kù)
mysql -u root -p

3 創(chuàng)建數(shù)據(jù)庫(kù)
create database rsgz2;

擴(kuò)展:想刪除數(shù)據(jù)庫(kù) drop database rsgz2;
4 進(jìn)入目標(biāo)地址
D:\1 File\9 pycharm

5 進(jìn)入powershell
shift+右鍵

6 創(chuàng)建項(xiàng)目
django-admin startproject pro2

可以看到當(dāng)前目錄多了一個(gè)項(xiàng)目文件

7 創(chuàng)建應(yīng)用
cd pro2 先進(jìn)入項(xiàng)目目錄
python manage.py startapp myapp 創(chuàng)建myapp應(yīng)用

8 選中pro2項(xiàng)目用pycharm打開(kāi)

9 配置文件
說(shuō)明:
0.1 項(xiàng)目文件的配置文件 叫做setting.py
0.2 setting.py需要 激活應(yīng)用, 配置數(shù)據(jù)庫(kù)
10 激活應(yīng)用
Ctrl+F 搜索APP
我們鎖定目標(biāo):INSTALLED_APPS = [

0.2 添加app進(jìn)去就行了

0.3 消除波浪號(hào)
分析:這里出現(xiàn)波浪號(hào)是因?yàn)橛姓Z(yǔ)法和拼寫檢測(cè),我們將其標(biāo)準(zhǔn)降低就行
操作:將下面的小人點(diǎn)擊一下,拖動(dòng)進(jìn)度條至中間即可

11 配置數(shù)據(jù)庫(kù)
Ctrl+F搜索關(guān)鍵字 DATABASE
0.1 我們鎖定目標(biāo)

0.2 配置內(nèi)容
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'rsgz2',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': '3306',
}
}

參數(shù)解釋:
0.1 數(shù)據(jù)庫(kù)的配置都是以鍵值對(duì)的形式配置
0.2 engine表示數(shù)據(jù)庫(kù)引擎配置,我設(shè)置的是mysql
0.3 name表示數(shù)據(jù)庫(kù)名 剛剛我新建的數(shù)據(jù)庫(kù)rsgz2
0.4 user默認(rèn)的是root
0.5 password是數(shù)據(jù)庫(kù)的登錄密碼
0.6 host是主機(jī)IP
0.7 port是數(shù)據(jù)庫(kù)端口號(hào)
12 數(shù)據(jù)庫(kù)引擎初始化設(shè)置
位置:項(xiàng)目文件下的__init__.py
操作:添加一些代碼
# 導(dǎo)入pymysql并安裝
import pymysql
pymysql.install_as_MySQLdb()

13 添加模型model
位置:打開(kāi)應(yīng)用的models.py

操作:添加模型
內(nèi)容:
from django.db import models
# Create your models here.
class Grades(models.Model):
gname =
models.CharField(max_length=20)
gdate =
models.DateTimeField()
ggirlnum
=models.IntegerField()
gboynum =
models.IntegerField()
isDelete = models.BooleanField(default=False)
def __str__(self):
# return "%s-%d-%d"%(self.gname,self.ggirlnum,self.gboynum)
return self.gname
class Students(models.Model):
sname =
models.CharField(max_length=20)
sgender =
models.BooleanField(default=True)
sage =
models.IntegerField()
scontend =
models.CharField(max_length=20)
isDelete =
models.BooleanField(default=False)
sgrade =
models.ForeignKey("Grades",on_delete=models.CASCADE)
def __str__(self):
# return "%s-%d-%d"%(self.gname,self.ggirlnum,self.gboynum)
return self.sname

14 遷移文件
0.1 生成遷移文件
命令:python
manage.py makemigrations
注意:需要在項(xiàng)目目錄下打開(kāi)執(zhí)行命令,如果執(zhí)行這個(gè)命令出錯(cuò)可以看看我的下一篇教程。里面有一些常見(jiàn)的錯(cuò)誤的解決辦法

這個(gè)時(shí)候多了0001文件

0.2 執(zhí)行遷移文件
命令:python
manage.py migrate

0.3 看看數(shù)據(jù)表
show databases;

use rsgz2;

show tables;

上面可以看出數(shù)據(jù)庫(kù)里面的表也已經(jīng)生成了
15 啟動(dòng)django服務(wù)器
命令:python
manage.py runserver

16 瀏覽器訪問(wèn)
127.0.0.1:8000

17 創(chuàng)建模板目錄
要求:
0.1 和項(xiàng)目 應(yīng)用目錄同級(jí)的templates目錄
0.2 有一個(gè)子目錄,包含myapp

0.3 配置模板路徑
位置:在項(xiàng)目setting.py文件中配置
操作:快捷鍵搜索ctrl+f 關(guān)鍵字template
鎖定目標(biāo):

添加:
TEMPLATES = [
{
'BACKEND': 'django.templates.backends.django.DjangoTemplates',
# 配置模板路徑
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.templates.context_processors.debug',
'django.templates.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

18 寫視圖
位置:myapp應(yīng)用下面views.py文件寫一個(gè)視圖
操作:添加下面代碼
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def index(request):
return
HttpResponse("融水公子是一個(gè)超級(jí)大帥哥!")

19 添加路由
問(wèn)題:模板和視圖都寫完了,但是沒(méi)有關(guān)聯(lián)
解決:我們寫一個(gè)路由關(guān)聯(lián)他們
操作:添加項(xiàng)目路由關(guān)聯(lián)應(yīng)用路由,添加 應(yīng)用路由關(guān)聯(lián)視圖views和模板templates
0.1
位置:在項(xiàng)目pro2下
操作:urls.py文件添加一個(gè)總路由
內(nèi)容:
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/',
admin.site.urls),
url(r'^',include('myapp.urls')),
] 
0.2 位置:在應(yīng)用myapp下
操作:新建一個(gè)urls.py文件,并且添加子路由
作用:用來(lái)連接視圖views和模板templates

添加內(nèi)容:
from django.conf.urls import url
from . import views #引入當(dāng)前目下
urlpatterns = [
url(r'^$',views.index)
]
20 瀏覽器訪問(wèn)
127.0.0.1

21 新建主頁(yè)
位置:templates里面
操作:新建一個(gè)index.html

添加內(nèi)容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>rsgz</title>
</head>
<body>
<h1>融水公子修為高深莫測(cè)!是一位斗破大陸的巔峰主宰!</h1>
</body>
</html>

22 主頁(yè)視圖
位置:應(yīng)用下的views.py
操作:添加代碼
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def index(request):
# return
HttpResponse("融水公子是一個(gè)超級(jí)大帥哥!")
# 我們通常不用上面的,而是直接使用模板
return
render(request, 'myapp/index.html') #訪問(wèn)主頁(yè)
23 訪問(wèn)主頁(yè)
http://127.0.0.1:8000/
