Django第五课:博客主页面开发

根据需要,我们大概需要三个部分:

1.博客主页面
2.博客文章内容页面
3.博客撰写页面

主页面内容

  • 文件标题列表,超链接
  • 发表博客按钮

编写思路:
取出数据库中所有文章对象
将文章对象打包成列表,传递到前端
前端页面把文章以标题超链接的形式逐个列出

博客文章页面

页面内容:

  • 标题
  • 文章内容
  • 修改文章按钮

废话不多说,我们开始编写代码。首先在views.py中修改和编写函数:

def index(request):
    articles = models.Article.objects.all()        #获取所有的文章对象
    return render(request, "blog/index.html", {'articles': articles})

在这里补充一下render函数:

_ render(request, template_name, context=None, content_type=None, status=None, using=None)_

Returns a HttpResponse whose content is filled with the result of calling django.template.loader.render_to_string() with the passed arguments.
此方法的作用—结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象。
通俗的讲就是把context的内容, 加载进templates中定义的文件, 并通过浏览器渲染呈现.

参数讲解:

request: 是一个固定参数, 没什么好讲的。
template_name: templates 中定义的文件, 要注意路径名. 比如’templates\polls\index.html’, 参数就要写‘polls\index.html’
context: 要传入文件中用于渲染呈现的数据, 默认是字典格式
content_type: 生成的文档要使用的MIME 类型。默认为DEFAULT_CONTENT_TYPE 设置的值。
status: http的响应代码,默认是200.
using: 用于加载模板使用的模板引擎的名称。

常见的MIME类型(通用型):

超文本标记语言文本 .html text/html
xml文档 .xml text/xml
XHTML文档 .xhtml application/xhtml+xml
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
PDF文档 .pdf application/pdf
Microsoft Word文件 .word application/msword
PNG图像 .png image/png
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
任意的二进制数据 application/octet-stream

接着,我们修改index.html模板文件:

<body>
<h1><a href="">新文章</a></h1>#标题
{% for article in articles %}        #Django模板语言
    <a href="">{{ article.title }}</a>    #文章标题
    <br/>
{% endfor %}
</body>

这样,主页面的前端和后端就都写完了。接着我们编写文章页面的后端,进入views.py添加如下函数:

def article_page(request,article_id):
    #获取文章对象
    article = models.Article.objects.get(pk = article_id)
    return render(request,'blog/article_page.html',{'article':article})

其中的article_id参数是作为文章的唯一标识(id),是django支持的。
然后写前端,新建一个模板文件article_page.html,在body中添加:

<body>
<h1>{{ article.title }}</h1>    #获取文章标题
<br/>
<br/>
{{ article.content }}    #获取文章内容
<br/><br/>
<a href="">修改文章</a>  #指向修改文章页面的超链接,留待后用
</body>

有关于页面的前后端写完后我们就要配置URL了。来到blog目录下的urls.py中,向urlpatterns中添加代码如下:

url(r'^article/(?P<article_id>[0-9]+)$',views.article_page)#第一个参数是有关正则表达式的内容

这样我们的页面就简单的搭建好了。
django第一课:创建第一个页面
Django第二课:创建第一个页面(响应),template
Django第三课:models
Django第四课:Admain简介

    原文作者:海深不蓝_
    原文地址: https://www.jianshu.com/p/fef0b7764c4c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞