
一:創(chuàng)建項(xiàng)目
在自己的pycharm中使用的是python3
- 1 : creat project
- 2: 選擇Django的項(xiàng)目
- 3: 在最下面Application name 填寫(xiě)自己項(xiàng)目的名稱(chēng)
- 4:Location 工程的地址
在models寫(xiě)好相關(guān)代碼,然后在setting文件中已經(jīng)在創(chuàng)建好項(xiàng)目的時(shí)候把APP的INSTALLED_APPS名稱(chēng)加入到里面
二: 執(zhí)行操作
- 1 打開(kāi)Pycharm下面的的Terminal 輸入
python3 manage.py makemigrations

- 2 更具上面生成的遷移對(duì)象,執(zhí)行下面的命令來(lái)生成seq語(yǔ)句
python3 manage.py migrate

- 3 增加數(shù)據(jù)和刪除數(shù)據(jù)可以在shell操作里進(jìn)行
三 創(chuàng)建超級(jí)管理員
python3 manage.py createsuperuser

1 啟動(dòng)服務(wù) 默認(rèn)是8000端口 如果被暫用 需要自己指定
python3 manage.py runserver
屏幕快照 2017-11-19 10.57.37.png
2 在瀏覽器中打開(kāi)下面的地址,把你剛才的賬戶(hù)密碼寫(xiě)進(jìn)去登錄
http://127.0.0.1:8000/admin
屏幕快照 2017-11-19 11.00.23.png
- 3 這時(shí)候會(huì)看到上面的界面,都是英文的不好看 你可以修改setting文件來(lái)顯示中文
LANGUAGE_CODE = zh-hans'
還可以對(duì)時(shí)區(qū)進(jìn)行修改
屏幕快照 2017-11-19 12.01.46.png
- 5 如果想讓創(chuàng)建的BookInfo添加到頁(yè)面中,需要在admin.py中進(jìn)行注冊(cè)
- 5.1 python2中
from django.contrib import admin
from models import *
from.site.register(BookInfo)
- 5.2 python3中
from django.contrib import admin
from .models import *
from.site.register(BookInfo)
6 在有的Django版本中,在界面添加數(shù)據(jù)的時(shí)候,如果添加的有中文的情況下會(huì)出錯(cuò)屏幕快照 2017-11-19 11.22.56.png
7 原因是由于我們的代碼在定義BookInfo中有對(duì)類(lèi)屬性的字符串輸出,那個(gè)地方?jīng)]有進(jìn)行格式編碼處理
屏幕快照 2017-11-19 11.24.52.png
如果你的沒(méi)有出現(xiàn)報(bào)錯(cuò),則上面的步驟不需要處理
四 自定義界面
1:在admin.py需要先注冊(cè)自定義的類(lèi)
image.png
五 關(guān)聯(lián)對(duì)象

5.1 在book中添加對(duì)象的時(shí)候會(huì)看到下面多出3個(gè)英雄的界面
屏幕快照 2017-11-19 13.35.15.png
TabularInline是表格形式


六 view的簡(jiǎn)單制定
-
1 : 在view中先注冊(cè)pycharm提供的導(dǎo)入頭文件,自己先用自定義的方式來(lái)創(chuàng)建
548595BA-D2A5-4453-8756-663162D46097.png -
2 : 在booktest目錄下創(chuàng)建自己的urls.py文件,定義自己app中的url
6315BD76-2266-428B-98DE-B15AD1A969A4.png 3 : 在項(xiàng)目中的urls.py中配置自己剛才app中定義的urls
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('booktest.urls'))
]
七 定義模板
- 1 : 如果你是沒(méi)有直接用pycharm創(chuàng)建的項(xiàng)目,而是用的命令創(chuàng)建的項(xiàng)目,則項(xiàng)目目錄中沒(méi)有templates文件夾目錄,則需要在pycharm手動(dòng)創(chuàng)建
-
1.1 注意 手動(dòng)創(chuàng)建此目錄,系統(tǒng)不會(huì)在setting文件中去注冊(cè),rutemplates,如果沒(méi)有請(qǐng)加上
1481AA49-DF9B-40C1-9C1F-A44D7ED6123F.png -
1.2 然后在templates文件下創(chuàng)建文件夾(booktest),在booktest下創(chuàng)建index.html模板
368DBAD9-321A-4C58-A426-3D9F9A59B192.png -
1.3 如果沒(méi)有按上面做會(huì)報(bào)錯(cuò)
屏幕快照 2017-11-19 14.24.32.png
-
-
2 :在view中導(dǎo)入自己定義的模板.
3DCE20E1-A05C-4A3D-9905-C538DAA831F4.png-
2.1 不用上面的手動(dòng),用rendom函數(shù),結(jié)果是一樣的
EA0FDDDE-816D-49A4-B40D-235813E36D2A.png
-
-
3 把模型中的數(shù)據(jù)展示在view中
3.1 在html中
C51FA7ED-EB84-43C5-8434-C9799CAAD107.png
3.2 在views中
CD034F71-9780-4C73-81AB-0EE2E6DFCBA7.png
八 詳細(xì)展示
- 1 : views.py中定義要展示的方法
def show(request, id):
# 根據(jù)id獲取一本書(shū)
bookinfo = BookInfo.objects.get(pk=id)
# 從書(shū)對(duì)象中獲取對(duì)應(yīng)所有的英雄
herolist = bookinfo.heroinfo_set.all()
context = {"list": herolist}
return render(request, 'booktest/show.html', context)
- 2 在urls中定義要要show方法的規(guī)則
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^$', views.index),
url(r'(\d+)', views.show) #匹配到數(shù)據(jù)將調(diào)用views中的show方法
]
- 3 : 創(chuàng)建自己的show模板html(一定要注意格式,否則會(huì)報(bào)錯(cuò))
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<url>
{%for hero in list%}
<li>{{hero.hname}}</li>
{% endfor %}
</url>
</body>
</html>
九 最終效果

















