Django實戰(zhàn):搭建個人博客(二)
[TOC]
1. Django工作模式
Django作為一個Web框架灌侣,負(fù)責(zé)接收HTTP請求推捐,返回相應(yīng)的HTTP相應(yīng),具體的侧啼,在這個過程中需要解決以下三個問題:
- 如何接收HTTP請求
- 如何處理HTTP請求
- 如何生成HTTP響應(yīng)
2. 構(gòu)造視圖函數(shù)牛柒,綁定url
在blog/views.py
中創(chuàng)建首頁的視圖函數(shù):
from django.shortcuts import render
from .models import Post
# Create your views here.
# 視圖函數(shù)接收一個HTTP請求,返回一個HTTP response
def index(request):
# 獲取數(shù)據(jù)庫中的文章列表痊乾,按照創(chuàng)建時間逆序排列
post_list=Post.objects.all().order_by('-createdTime')
# render函數(shù)用于渲染模板(可以理解為將數(shù)據(jù)和靜態(tài)文件插入html中)皮壁,返回一個HTTP response,以下三個參數(shù)分別代表HTTP請求哪审,模板文件蛾魄,模板變量
return render(request,'index.html',context={
'post_list':post_list,
})
新建blog/urls.py
文件:
from . import views
from django.urls import path
# 將url與視圖函數(shù)綁定
urlpatterns = [
path('', views.index, name='index') # 綁定的是在域名+端口的基礎(chǔ)上,添加一個空字符串的域名湿滓,即主頁
]
在tony_blog/urls.py
中用include()
函數(shù)導(dǎo)入blog應(yīng)用的urlpatterns
滴须,這樣便于維護(hù):
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')) # 此處path函數(shù)拼接''與'',仍然是一個字符串
]
3. 修改.html模板叽奥,添加模板變量等
模板文件通常放在BASE_DIR/templates/
中扔水,此處使用追夢人物的博客-博客從“裸奔”到“有皮膚”中使用的模板,也可以下載其他好用的模板來使用而线。
此時項目目錄結(jié)構(gòu)如下:
<img src="http://qn.tonysongwb.top/img/20200912010359.png" style="zoom:50%;" />
在settings.py
中注冊模板文件路徑:
關(guān)于模板變量與模板標(biāo)簽:
- 用
{{ }}
包裹的是模板變量铭污,是視圖函數(shù)傳值并顯示的地方 - 用
{% %}
包裹的是模板標(biāo)簽,類似于函數(shù)可以做一些控制操作
向index.html
模板文件導(dǎo)入模板變量膀篮,涉及到一些html語法:
1. 用{% for post in post_list %}來傳入所有文章嘹狞,其中的post用于在循環(huán)體中代表一個文章變量
2. 向模板傳入{{ post.pk }},{{ post.title }}誓竿,{{ post.category.name }}等模板變量
4. 向模板中添加靜態(tài)文件
靜態(tài)文件包括css和js文件以及圖片磅网,用于構(gòu)造頁面的樣式。分以下三個步驟:
-
存放靜態(tài)文件的路徑
在
blog/
目錄下新建static/blog/
用于存放blog應(yīng)用的靜態(tài)文件筷屡,如下:image -
在
setting.py
中設(shè)置靜態(tài)文件url前綴與路徑一致:STATIC_URL = '/static/'
-
在模板中通過
{% static "path" %}
模板標(biāo)簽來引用靜態(tài)文件涧偷,其中static標(biāo)簽的作用是將STATIC_URL與path拼接起來作為靜態(tài)文件的地址簸喂。#注意在文件開頭插入{% load static %},載入static模塊 <link rel="stylesheet" href={% static "blog/css/bootstrap.min.css" %}>
ctrl/Shift+F5刷新頁面燎潮,或重啟項目喻鳄,看到頁面樣式顯示正常,說明靜態(tài)文件導(dǎo)入成功确封。
知識點(diǎn)總結(jié)
- 視圖函數(shù)
- url綁定
- html模板文件
- 靜態(tài)文件