Django2.0:【Django2.0教程】08.常用的模版標籤和過濾器 視訊學習筆記
繼續搭建blog
blog/views.py
from django.shortcuts import render_to_response, get_object_or_404
from .models import Blog, BlogType
def blog_list(request):
context = {}
context['blogs'] = Blog.objects.all()
# context['blogs_count'] = Blog.objects.all().count()
return render_to_response('blog_list.html' , context)
def blog_detail(request, blog_pk):
context = {}
context['blog'] = get_object_or_404(Blog, pk=blog_pk)
return render_to_response('blog_detail.html', context)
def blogs_with_type(request, blog_type_pk):
context = {}
blog_type = get_object_or_404(BlogType, pk=blog_type_pk)
context['blogs' ] = Blog.objects.filter(blog_type=blog_type)
context['blog_type'] = blog_type
return render_to_response('blogs_with_type.html', context)
blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('<int:blog_pk>', views.blog_detail, name='blog_detail'),
path('type/<int:blog_type_pk>' , views.blogs_with_type, name='blogs_with_type',)
]
blog/templates/blog_detail.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{ blog.title }}</title>
</head>
<body>
<div>
<a href="{% url 'home' %}">
<h3>個人部落格網站</h3>
</a>
<hr>
</div>
<h3>{{ blog.title }}</h3>
<p>作者:{{ blog.author }}</p>
<p>發表日期:{{ blog.created_time|date:"Y-m-d" }}</p>
<p>分類:
<a href='{% url 'blogs_with_type' blog.blog_type.pk %}'>
{{ blog.blog_type }}
</a>
</p>
<p>{{ blog.content }}</p>
</body>
</html>
blog/templates/blog_list.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>我的網站</title>
</head>
<body>
<div>
<a href="{% url 'home' %}">
<h3>個人部落格網站</h3>
</a>
</div>
<hr>
{% for blog in blogs %}
<a href="{% url 'blog_detail' blog.pk %}">
<h3>{{ blog.title }}</h3>
</a>
<p>{{ blog.content|truncatechars:30 }}</p>
{% empty %}
<p>---暫無博文,敬請期待---</p>
{% endfor %}
<p>一共有{{ blogs|length }} 篇博文</p>
</body>
</html>
blog/templates/blogs_with_type.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{ blog_type.type_name }}</title>
</head>
<body>
<div>
<a href="{% url 'home' %}">
<h3>個人部落格網站</h3>
</a>
</div>
<hr>
<h3>{{ blog_type.type_name }}</h3>
{% for blog in blogs %}
<a href="{% url 'blog_detail' blog.pk %}">
<h3>{{ blog.title }}</h3>
</a>
<p>{{ blog.content|truncatechars:30 }}</p>
{# 這是註釋 #}
{% empty %}
<p>---暫無博文,敬請期待---</p>
{% endfor %}
<p>一共有{{ blogs|length }} 篇博文</p>
</body>
</html>
mysite/urls.py
from django.contrib import admin
from django.urls import path, include
from blog.views import blog_list
urlpatterns = [
path('', blog_list, name='home'),
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]
相關推薦
Django2.0:【Django2.0教程】08.常用的模版標籤和過濾器 視訊學習筆記
繼續搭建blog blog/views.py from django.shortcuts import render_to_response, get_object_or_404 from .models import Blog, BlogType d
Django2.0:【Django2.0教程】11.CSS框架協助前端佈局 視訊學習筆記
將下載的bootstrap解壓並重命名為bootstrap-3.3.7,移動至static/下,這裡只用到css/bootstrap.min.css和css/bootstrap.min.css.map、js/bootstrap.min.js和全部font
Django2.0:【Django2.0教程】02.入門儀式:Hello World 視訊學習筆記
進入到需要放置專案的路徑,使用如下命令建立專案: $ django-admin startproject mysite 這裡,mysite為專案名稱,也可以是其他的名字。進入到mysite目錄之後,可以看到目錄結構如下: . ├── mana
Django2.0:【Django2.0教程】14.優化分頁展示 視訊學習筆記
當前頁高亮 修改blog/templates/blog/blog_list.html: ... <ul class="pagination"> <li> {# 上一頁 #} {% if pa
Django2.0:【Django2.0教程】04.使用模版顯示內容 視訊學習筆記
檢視文章頁面:唯一標示id article/migrations/0001_initial.py的內容如下: # Generated by Django 2.0.5 on 2018-05-11 06:54 from django.db import m
Django2.0:【Django2.0教程】13.分頁和shell命令列模式 視訊學習筆記
快速新增博文:Shell命令列模式 $ python manage.py shell 匯入Blog模型: >>> from blog.models import Blog 驗證是否成功引用: >>&
【Qt OpenGL教程】08:混合
第08課:混合 (參照NeHe) 這次教程中,我們將在紋理對映的基礎上加上混合,使它看起來具有透明的效果,當然解釋它不是那麼容易但程式碼並不難,希望你喜歡它。 OpenGL中的絕大多數特效都與某些型別的(色彩)混合有關。混色的定義為,將某個畫素的顏色和已繪製在螢幕上與其對應
【Nosql-安裝教程】Linux環境下安裝和部署Redis步驟
Linux環境下安裝和部署Redis步驟如下: 1. 下載安裝包 cd /var/lamp/ 2.編譯源程式 tar xzf redis-3.2.8.tar.gz cd redis-3.2.8 make cd src && make install
【KMP】【字符串】KMP字符串匹配算法 學習筆記
出現 調用 隨機 rri 形象 再看 aaaaa scan i+1 一、簡介 KMP是由Knuth、Morris和Prat發明的字符串匹配算法,它的時間復雜度是均攤\(O(n+m)\)。其實用Hash也可以做到線性,只不過Hash存在極其微小的難以避免的沖突。於是就
【 專欄 】- Android應用安全防護和逆向分析學習筆記
Android應用安全防護和逆向分析學習筆記 這裡給大家分享的是《Android應用安全防護和逆向分析》的學習筆記,個人認為移動端的安全也是不可忽視的,我們Android工程師應該重視Android的安全這一塊,希望這個專欄的部落
Django入門教程(五)自定義模板標籤和過濾器
1、建立專案 django-admin startproject djangocustomtagandfilter cd djangocustomtagandfilter python manage.py startapp customtagfilter 2、在
給初學者的RxJava2.0教程(二):【執行緒控制】
前言 上一節教程講解了最基本的RxJava2的使用, 在本節中, 我們將學習RxJava強大的執行緒控制. 正題 還是以之前的例子, 兩根水管: 正常情況下, 上游和下游是工作在同一個執行緒中的, 也就是說上游在哪個執行緒發事件,
【React 實戰教程】從0到1 構建 github star管理工具
前言 在日常使用github中,除了利用git進行專案版本控制之外,最多的用處就是遊覽各式的專案,在看到一些有趣或者有用的專案之後,我們通常就會順手star,目的是日後再看。但是當我們star了許多專案之後,回過頭想找一個的專案就會發現,很難在短時間內找到它,官方也並沒有提供很好的管理我們的star專案的功
【ROM修改教程】新增高階電源重啟選單(安卓4.0.4官方ROM)
準備工作: 電腦上安裝好JDK、下載smali和baksmali、下載apktools、要修改的ROM、adb工具(可選) 注:由於本教程面向的物件為有一定ROM修改基礎的兄弟,所以對於如何使用電腦,如何使用CMD以及上述工具的具體用法等等都不在本貼的討論範圍內,本文將僅講述如何新增高階重啟選單 1、從要
【Unity3D基礎教程】給初學者看的Unity教程(零):如何學習Unity3D
cos 詳解 component lock index unity3d遊戲 design 技術棧 log 【Unity3D基礎教程】給初學者看的Unity教程(零):如何學習Unity3D http://www.cnblogs.com/neverdie/p/How_To_
【Qt OpenGL教程】25:變形和從檔案中載入3D物體
第25課:變形和從檔案中載入3D物體 (參照NeHe) 這次教程中,我們將學會如何從檔案中載入3D模型,並且平滑的從一個模型變形為另一個模型。在這一課裡,我們將介紹如何實現模型的變形過程,這將會是效果很棒的一課! 程式執行時效果如下: 下面進入教程: 我們這次將在第
【Unity3D基礎教程】給初學者看的Unity教程(六):理解Unity的新GUI系統(UGUI)
理解UGUI的基礎架構 UGUI是Unity在4.6中引入的新的GUI系統,與傳統的中介軟體NGUI相比,這套新GUI系統有幾個核心亮點: 放棄了Atlas的概念,使用Packing Tag的方式來進行圖集的規劃 放棄了depth來確定UI顯示層級的概念,使用Hierarchy的SiblingIndex
【Unity3D基礎教程】給初學者看的Unity教程(二):所有指令碼元件的基類 -- MonoBehaviour的前世今生
引子 上一次我們講了GameObject,Compoent,Time,Input,Physics,其中Time,Input,Physics都是Unity中的全域性變數。GameObject是遊戲中的基本物件。GameObject是由Component組合而成的,GameObject本身必須有
【Unity3D基礎教程】給初學者看的Unity教程(五):詳解Unity3D中的協程(Coroutine)
為什麼需要協程 在遊戲中有許多過程(Process)需要花費多個邏輯幀去計算。 你會遇到“密集”的流程,比如說尋路,尋路計算量非常大,所以我們通常會把它分割到不同的邏輯幀去進行計算,以免影響遊戲的幀率。 你會遇到“稀疏”的流程,比如說遊戲中的觸發器,這種觸發器大多數時候什麼也不做,但
【Unity3D基礎教程】給初學者看的Unity教程(三):通過製作Flappy Bird瞭解Native 2D中的Sprite,Animation
引子 上一次我們講了MonoBehaviour的前世今生,瞭解了遊戲中的每一個GameObjec都是由指令碼控制的,這一次我們開始將Unity中Native 2D中的Sprite,並且使用Animation來讓Sprite動起來。 在接下來的幾篇部落格裡,我會通過做一個Flappy Bird來講解