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

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

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

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

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

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

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

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

8 選中pro2項目用pycharm打開

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

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

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

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

13 添加模型model
位置:打開應(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
注意:需要在項目目錄下打開執(zhí)行命令,如果執(zhí)行這個命令出錯可以看看我的下一篇教程。里面有一些常見的錯誤的解決辦法

這個時候多了0001文件

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

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

use rsgz2;

show tables;

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

16 瀏覽器訪問
127.0.0.1:8000

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

0.3 配置模板路徑
位置:在項目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文件寫一個視圖
操作:添加下面代碼
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def index(request):
return
HttpResponse("融水公子是一個超級大帥哥!")

19 添加路由
問題:模板和視圖都寫完了,但是沒有關(guān)聯(lián)
解決:我們寫一個路由關(guān)聯(lián)他們
操作:添加項目路由關(guān)聯(lián)應(yīng)用路由,添加 應(yīng)用路由關(guān)聯(lián)視圖views和模板templates
0.1
位置:在項目pro2下
操作:urls.py文件添加一個總路由
內(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下
操作:新建一個urls.py文件,并且添加子路由
作用:用來連接視圖views和模板templates

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

21 新建主頁
位置:templates里面
操作:新建一個index.html

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

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