成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python大佬養(yǎng)成計(jì)劃----Django圖書人物適配系統(tǒng)(前端)

amuqiao / 3341人閱讀

摘要:兩者相同的地方是都可以將一個(gè)普通函數(shù)變成視圖函數(shù)。不同的是,使用裝飾器定義路由,而使用正則表達(dá)式定義路由。中間什么都沒有,表示這個(gè)正則匹配的是根目錄,。最后修改的網(wǎng)頁(yè)顯示如圖項(xiàng)目框架圖

Django添加路由

與flask一樣,django也需要使用路由將URL與服務(wù)端要執(zhí)行的代碼關(guān)聯(lián)。

兩者相同的地方是都可以將一個(gè)普通函數(shù)變成視圖函數(shù)。不同的是,flask使用裝飾器@app.route()定義路由,而django使用正則表達(dá)式定義路由。

操作:在我們建立的book項(xiàng)目中新建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/
]

修改主項(xiàng)目的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)在僅用來(lái)做測(cè)試

#FristDjangoookviews.py
from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.
def index(request): #django不同于flask,flask默認(rèn)請(qǐng)求方式是request,而django里面的請(qǐng)求對(duì)象必須作為參數(shù)接收
    return  HttpResponse("ok")

def detail(request,id):
    return HttpResponse("%s is ok" %(id))

^匹配URL路徑的開始, $匹配URL路徑的結(jié)束。中間什么都沒有,表示這個(gè)正則匹配的是根目錄,‘/’。
簡(jiǎn)易的網(wǎng)頁(yè)結(jié)構(gòu)

已經(jīng)測(cè)試過(guò)網(wǎng)頁(yè)是可用的,現(xiàn)在編寫自己的html文件來(lái)實(shí)現(xiàn)自己的項(xiàng)目
我們的網(wǎng)頁(yè)模板文件放在主項(xiàng)目templates/目錄下的應(yīng)用文件里,可能會(huì)有多個(gè)應(yīng)用,所以建立不同的目錄,用來(lái)區(qū)分。
需要實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的結(jié)合,后臺(tái)管理的數(shù)據(jù)庫(kù)信息應(yīng)該在前臺(tái)顯示,重新編寫視圖函數(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默認(rèn)請(qǐng)求方式是request,而django里面的請(qǐng)求對(duì)象必須作為參數(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
    })

主頁(yè)顯示的html頁(yè)面

# templates/book/index_old.html



    
    主頁(yè)


    {% for book in books %}
  • {{ book.btitle }}

    {{ book.bpub_time }}

    {{ book.bcontent }}

  • {% endfor %}

書籍詳情頁(yè)顯示的html頁(yè)面

# templates/book/detail_old.html



    
    {{ book.btitle}}詳情頁(yè)


    

{{ book.btitle }}

    {% for hero in heros %}

    {{ hero.hname }}

    {{ hero.hcontent }}

    {% endfor %}

如何讓頁(yè)面變好看

step1: 書籍信息太少,修改書籍?dāng)?shù)據(jù)庫(kù)表結(jié)構(gòu),添加圖書摘要、圖書圖片
step2:從網(wǎng)上找一些好看的頁(yè)面文件來(lái)做修改

注意:靜態(tài)文件(CSS,JS,IMG)多帶帶存放一個(gè)目錄static/
樣式文件的目錄需要修改,主項(xiàng)目settings.py文件修改Static files

step1操作:修改book/models.py文件中BookInfo表的結(jié)構(gòu),添加摘要,圖片。新建static/uploads/目錄用來(lái)存放上傳的圖片。

    bcontent = models.TextField(default="摘要", verbose_name="書籍摘要")
    bimg = models.ImageField(default=None, upload_to="static/uploads/")

終端執(zhí)行數(shù)據(jù)庫(kù)遷移命令

python manage.py makemigrations
python manage.py migrate

使用管理員登陸后臺(tái),修改書籍內(nèi)容

step2操作:新建static/目錄后,修改主項(xiàng)目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"),
]

注意:主頁(yè)和詳情頁(yè)有大量重復(fù)代碼,我們創(chuàng)建一個(gè)基模板,讓應(yīng)用模板繼承于基類可減少代碼重復(fù)量。
最后修改的網(wǎng)頁(yè)顯示如圖:


項(xiàng)目框架圖:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/45011.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

amuqiao

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<