講解對(duì)象:django項(xiàng)目開發(fā)實(shí)戰(zhàn)詳解
作者:融水公子rsgz
1 啟動(dòng)數(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)建項(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打開
9 配置文件
說明:
0.1 項(xiàng)目文件的配置文件 叫做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 消除波浪號(hào)
分析:這里出現(xiàn)波浪號(hào)是因?yàn)橛姓Z法和拼寫檢測(cè),我們將其標(biāo)準(zhǔn)降低就行
操作:將下面的小人點(diǎn)擊一下,拖動(dòng)進(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ù)庫的配置都是以鍵值對(duì)的形式配置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ù)庫端口號(hào)
12 數(shù)據(jù)庫引擎初始化設(shè)置
位置:項(xiàng)目文件下的__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 生成遷移文件
命令:pythonmanage.py makemigrations
注意:需要在項(xiàng)目目錄下打開執(zhí)行命令,如果執(zhí)行這個(gè)命令出錯(cuò)可以看看我的下一篇教程。里面有一些常見的錯(cuò)誤的解決辦法
這個(gè)時(shí)候多了0001文件
0.2 執(zhí)行遷移文件
命令:pythonmanage.py migrate
0.3 看看數(shù)據(jù)表
show databases;
use rsgz2;
show tables;
上面可以看出數(shù)據(jù)庫里面的表也已經(jīng)生成了
15 啟動(dòng)django服務(wù)器
命令:pythonmanage.py runserver
16 瀏覽器訪問
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):
returnHttpResponse("融水公子是一個(gè)超級(jí)大帥哥!")
19 添加路由
問題:模板和視圖都寫完了,但是沒有關(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文件,并且添加子路由
作用:用來連接視圖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里面
操作:新建一個(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īng)用下的views.py
操作:添加代碼
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def index(request):
# returnHttpResponse("融水公子是一個(gè)超級(jí)大帥哥!")
# 我們通常不用上面的,而是直接使用模板
returnrender(request, 'myapp/index.html') #訪問主頁
23 訪問主頁
http://127.0.0.1:8000/
聯(lián)系客服