Django实战:搭建个人博客(二)

464 阅读2分钟

Django实战:搭建个人博客(二)

[TOC]

1. Django工作模式

Django作为一个Web框架,负责接收HTTP请求,返回相应的HTTP相应,具体的,在这个过程中需要解决以下三个问题:

  1. 如何接收HTTP请求
  2. 如何处理HTTP请求
  3. 如何生成HTTP响应

2. 构造视图函数,绑定url

blog/views.py中创建首页的视图函数:

from django.shortcuts import render
from .models import Post
# Create your views here.
# 视图函数接收一个HTTP请求,返回一个HTTP response
def index(request):
    # 获取数据库中的文章列表,按照创建时间逆序排列
    post_list=Post.objects.all().order_by('-createdTime')
    # render函数用于渲染模板(可以理解为将数据和静态文件插入html中),返回一个HTTP response,以下三个参数分别代表HTTP请求,模板文件,模板变量
    return render(request,'index.html',context={
        'post_list':post_list,
    })

新建blog/urls.py文件:

from . import views
from django.urls import path
# 将url与视图函数绑定
urlpatterns = [
    path('', views.index, name='index')  # 绑定的是在域名+端口的基础上,添加一个空字符串的域名,即主页
]

tony_blog/urls.py中用include()函数导入blog应用的urlpatterns,这样便于维护:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls'))  # 此处path函数拼接''与'',仍然是一个字符串
]

3. 修改.html模板,添加模板变量等

模板文件通常放在BASE_DIR/templates/中,此处使用追梦人物的博客-博客从“裸奔”到“有皮肤”中使用的模板,也可以下载其他好用的模板来使用。

此时项目目录结构如下:

settings.py中注册模板文件路径:

关于模板变量与模板标签:

  • {{ }}包裹的是模板变量,是视图函数传值并显示的地方
  • {% %}包裹的是模板标签,类似于函数可以做一些控制操作

index.html模板文件导入模板变量,涉及到一些html语法:

1. 用{% for post in post_list %}来传入所有文章,其中的post用于在循环体中代表一个文章变量
2. 向模板传入{{ post.pk }},{{ post.title }},{{ post.category.name }}等模板变量

4. 向模板中添加静态文件

静态文件包括css和js文件以及图片,用于构造页面的样式。分以下三个步骤:

  1. 存放静态文件的路径

    blog/目录下新建static/blog/用于存放blog应用的静态文件,如下:

  2. setting.py中设置静态文件url前缀与路径一致:

    STATIC_URL = '/static/'
    
  3. 在模板中通过{% static "path" %}模板标签来引用静态文件,其中static标签的作用是将STATIC_URL与path拼接起来作为静态文件的地址。

    #注意在文件开头插入{% load static %},载入static模块
    <link rel="stylesheet" href={% static "blog/css/bootstrap.min.css" %}>
    

ctrl/Shift+F5刷新页面,或重启项目,看到页面样式显示正常,说明静态文件导入成功。

知识点总结

  • 视图函数
  • url绑定
  • html模板文件
  • 静态文件

参考资料

追梦人物的博客-Django 的接客之道等

www.cnblogs.com/ouwen-lengy…