摘要:兩者相同的地方是都可以將一個普通函數(shù)變成視圖函數(shù)。不同的是,使用裝飾器定義路由,而使用正則表達式定義路由。中間什么都沒有,表示這個正則匹配的是根目錄,。最后修改的網(wǎng)頁顯示如圖項目框架圖
Django添加路由
與flask一樣,django也需要使用路由將URL與服務端要執(zhí)行的代碼關聯(lián)。
兩者相同的地方是都可以將一個普通函數(shù)變成視圖函數(shù)。不同的是,flask使用裝飾器@app.route()定義路由,而django使用正則表達式定義路由。
操作:在我們建立的book項目中新建urls.py文件
#FristDjangoookurls.py from django.conf.urls import url from django.contrib import admin from book.views import index,detail urlpatterns = [ url(r"^$",index), #http://127.0.0.1:9099/ url(r"book/(?Pd+)/$",detail) #http://127.0.0.1:9099/book/1/ ]
修改主項目的setting.py文件
from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ url(r"^admin/", admin.site.urls), url(r"",include("book.urls")) ]
視圖函數(shù)可以隨意編寫,現(xiàn)在僅用來做測試
#FristDjangoookviews.py from django.http import HttpResponse from django.shortcuts import render # Create your views here. def index(request): #django不同于flask,flask默認請求方式是request,而django里面的請求對象必須作為參數(shù)接收 return HttpResponse("ok") def detail(request,id): return HttpResponse("%s is ok" %(id))
^匹配URL路徑的開始, $匹配URL路徑的結束。中間什么都沒有,表示這個正則匹配的是根目錄,‘/’。簡易的網(wǎng)頁結構
已經(jīng)測試過網(wǎng)頁是可用的,現(xiàn)在編寫自己的html文件來實現(xiàn)自己的項目
我們的網(wǎng)頁模板文件放在主項目templates/目錄下的應用文件里,可能會有多個應用,所以建立不同的目錄,用來區(qū)分。
需要實現(xiàn)與數(shù)據(jù)庫的結合,后臺管理的數(shù)據(jù)庫信息應該在前臺顯示,重新編寫視圖函數(shù)
#FristDjangoookviews.py from django.http import HttpResponse from django.shortcuts import render # Create your views here. from book.models import BookInfo,HeroInfo def index(request): #django不同于flask,flask默認請求方式是request,而django里面的請求對象必須作為參數(shù)接收 # return HttpResponse("ok") books = BookInfo.objects.all() return render(request,"book/index_old.html",context={ "books":books, }) def detail(request,id): # return HttpResponse("%s is ok" %(id)) book = BookInfo.objects.get(id=id) heros = book.heroinfo_set.all() return render(request,"book/detail_old.html",context={ "book":book, "heros":heros })
主頁顯示的html頁面
# templates/book/index_old.html主頁
{{ book.bcontent }}
書籍詳情頁顯示的html頁面
# templates/book/detail_old.html{{ book.btitle}}詳情頁 {{ book.btitle }}
{{ hero.hcontent }}
{% endfor %}step1: 書籍信息太少,修改書籍數(shù)據(jù)庫表結構,添加圖書摘要、圖書圖片
step2:從網(wǎng)上找一些好看的頁面文件來做修改
注意:靜態(tài)文件(CSS,JS,IMG)多帶帶存放一個目錄static/ 樣式文件的目錄需要修改,主項目settings.py文件修改Static files
step1操作:修改book/models.py文件中BookInfo表的結構,添加摘要,圖片。新建static/uploads/目錄用來存放上傳的圖片。
bcontent = models.TextField(default="摘要", verbose_name="書籍摘要") bimg = models.ImageField(default=None, upload_to="static/uploads/")
終端執(zhí)行數(shù)據(jù)庫遷移命令
python manage.py makemigrations python manage.py migrate
使用管理員登陸后臺,修改書籍內(nèi)容
step2操作:新建static/目錄后,修改主項目settings.py文件
# Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ STATIC_URL = "/static/" STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ]
注意:主頁和詳情頁有大量重復代碼,我們創(chuàng)建一個基模板,讓應用模板繼承于基類可減少代碼重復量。
最后修改的網(wǎng)頁顯示如圖:
項目框架圖:
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45011.html
閱讀 1711·2021-11-22 12:09
閱讀 1452·2019-08-30 13:22
閱讀 2083·2019-08-29 17:00
閱讀 2635·2019-08-29 16:28
閱讀 2945·2019-08-26 13:51
閱讀 1174·2019-08-26 13:25
閱讀 3238·2019-08-26 12:14
閱讀 3007·2019-08-26 12:14