django學(xué)習(xí)筆記6--博客主頁(yè)面和文章頁(yè)

博客頁(yè)面需要的功能:

  1. 在頁(yè)面上顯示博文標(biāo)題,是超鏈接
  2. 有個(gè)發(fā)表新文章的超鏈接按鈕
    在網(wǎng)頁(yè)前端展示所有文章標(biāo)題需要用到for循環(huán)。
    {%for XX in XXS%}
    {%endfor%}
    在模板里用這樣的格式
    views.py里要獲取所有的文章,就不用get()了,改用all(),返回一個(gè)類似列表的對(duì)象。
    views里:
from django.shortcuts import render
from django.http import HttpResponse
from . import models
# Create your views here.

def index(request):    #接受請(qǐng)求,做出響應(yīng)
    articles = models.Article.objects.all()
    return render(request,'blog/index.html',{'articles':articles})

html文件中:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>
    <a href="">新文章 </a>
</h1>
{% for article in articles %}
    <a href="">{{ article.title}}</a>
    <br/>
{% endfor %}
</body>
</html>

文章頁(yè)需要展示標(biāo)題和內(nèi)容,之前已經(jīng)實(shí)現(xiàn),現(xiàn)在關(guān)鍵在于配置url,文章唯一的標(biāo)識(shí)是id號(hào),url里需要包含該id。views里的響應(yīng)函數(shù)也需要這個(gè)參數(shù)以確定該響應(yīng)哪篇文章。于是需要了解正則表達(dá)式的知識(shí):

(?P<name>...) 分組的命名模式,取此分組中的內(nèi)容時(shí)可以使用索引也可以使用name
https://www.cnblogs.com/dyfblog/p/5880728.html

urls.py里:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index),
    url(r'^article/(?P<article_id>[0-9]+)$',views.article_page),
]

(?P<article_id>[0-9]+)中:
[0-9]+意思是,0-9里的數(shù)字任意多個(gè)
(?P<article_id>...)意思是匹配了...里的正則表達(dá)式后保存為名為article_id的子組以供之后調(diào)用。

views里:

from django.shortcuts import render
from django.http import HttpResponse
from . import models
# Create your views here.

def index(request):    #接受請(qǐng)求,做出響應(yīng)
    articles = models.Article.objects.all()
    return render(request,'blog/index.html',{'articles':articles})
    
def article_page(request,article_id):
    article = models.Article.objects.get(pk=article_id)
    return render(request,'blog/article_page.html',{'article':article})

收到請(qǐng)求后,urls.py里的正則表達(dá)式會(huì)找出網(wǎng)址里的article_id傳遞給響應(yīng)函數(shù),這樣響應(yīng)函數(shù)就知道該響應(yīng)那篇文章了。
然后再做個(gè)文章頁(yè)面的模板article_page.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>article_page</title>
</head>
<body>
<h1>{{ article.title}}</h1>
<br/>
<h3>{{ article.content}}</h3>
<br><br/>
<a href="">修改文章</a>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 去年的事情特別多,也沒(méi)有什么時(shí)間充電學(xué)習(xí)。今年目測(cè)輕松一點(diǎn),年初本來(lái)計(jì)劃就好好休息一下,結(jié)果一晃2017就度過(guò)了一...
    灰豹兒閱讀 688評(píng)論 0 2
  • (一)、啟動(dòng)服務(wù)器 (二)、創(chuàng)建數(shù)據(jù)庫(kù)表 或 更改數(shù)據(jù)庫(kù)表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星閱讀 5,965評(píng)論 0 17
  • django官網(wǎng) 安裝 官方安裝方法 源碼安裝下載源碼然后 到django目錄下 運(yùn)行 pip install -...
    chenlin2844閱讀 1,367評(píng)論 1 2
  • 本博客是記錄跟從慕課網(wǎng)課程所記下的筆記,更多內(nèi)容請(qǐng)?jiān)L問(wèn)慕課網(wǎng)慕課網(wǎng)--項(xiàng)目源碼 新建項(xiàng)目 打開命令行,進(jìn)入到打算打...
    小白猿閱讀 2,521評(píng)論 1 10
  • 此段內(nèi)容簡(jiǎn)要來(lái)自自強(qiáng)學(xué)堂的教程詳情請(qǐng)查詢自強(qiáng)學(xué)堂 一、 后臺(tái)的運(yùn)作流程 接收request請(qǐng)求 處理數(shù)據(jù) 獲取請(qǐng)求...
    coder_ben閱讀 5,347評(píng)論 6 56

友情鏈接更多精彩內(nèi)容