django初探-创建简单的博客系统(二)建议收藏

显示博客信息将博客内容保存到数据库还不是发布博客的终极目的,博客一定要显示出来,显示博客信息的基本知识如下图:显示文章标题获取数据当我们在./blog/models.py中创建了数据模型后,D

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

  上篇
django初探-创建简单的博客系统(一)已经记录了Django实现博客的发布的整个过程,接下来继续说明博客标题和内容的显示。

显示博客信息

  将博客内容保存到数据库还不是发布博客的终极目的,博客一定要显示出来,显示博客信息的基本知识如下图:

  django初探-创建简单的博客系统(二)建议收藏

显示文章标题

获取数据

  当我们在./blog/models.py中创建了数据模型后,Django就会自动提供数据库抽象的API,通过API可以创建、获取、修改或删除对象

  我们可以使用交互模式进行测试

  python manage.py shell

  django初探-创建简单的博客系统(二)建议收藏

  对BlogArticles类可以进行类似操作

  django初探-创建简单的博客系统(二)建议收藏

添加模板

  在/blog下templates文件夹,在templates文件夹下添加base.html、titile.html和content.html三个文件

  base.html

<!DOCTYPE html>
<html lang="zh-cn">
    <head>
        <meta http-equiv="X-UA_compatible" content="IE=Edge">
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>
            {%block title%}
            {%endblock%}
        </title>
        <link rel="stylesheet" href="http://necolas.github.io/normalize.css/">
        <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
    </head>
    <body>
        <div class="container">
            {%block content%}
            {%endblock%}
        </div>
        <scripy src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></scripy>
        <scripy src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></scripy>
    </body>
</html>

  titles.html

{%extends "base.html"%}

{%block title%}blog titles{%endblock%}

{%block content%}
<div class="row text-center vertical-middle-sm">
    <h1>小兵千睿</h1>
</div>
<div class="row">
    <div class="col-xs-12 c0l-md-8">
        <ul>
            {%for blog in blogs%}
                <li><a href="{{blog.id}}">{{blog.title}}</a></li> <!--双层花括号表示此处显示变量引用的数据-->                
            {%endfor%}
        </ul>
    </div>
    <div class="col-xs-6 col-md-4">
        <h2>show time</h2>
        <img width="200px" src="http://images.cnblogs.com/cnblogs_com/xiaobingqianrui/1185116/o_Image%201.png">
    </div>
</div>
{%endblock%}

  content.html

{%extends "base.html"%}

{%block title%}blog article{%endblock%}

{%block content%}
<div class="row text-center vertical-middle-sm">
    <h1>{{article.title}}</h1>
</div>
<div class="row">
    <div class="col-xs-12 c0l-md-8">
        <p class="text-center"><span>{{article.author}}</span>
        <span style="margin-left:20px">{{publish}}</span></p>
        <div>{{article.body}}</div>
    </div>
    <div class="col-xs-6 col-md-4">
        <h2>show time</h2>
        <img width="200px" src="http://images.cnblogs.com/cnblogs_com/xiaobingqianrui/1185116/o_Image%201.png">
    </div>
</div>
{%endblock%}

添加视图函数

  /blog/view.py中添加相应代码

from django.shortcuts import render

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

def blog_title(request):
    blogs = BlogArticles.objects.all()
    return render(request, 'titles.html', {"blos":blogs})

def blog_article(request, articls_id):
    article = BlogArticles.objects.get(id=articls_id)
    pub = article.publish
    return render(request, 'content.html', {"article":article, "publish":pub})

添加应用URL

  1. /xbqr/urls.py中添加代码

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

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^blog/', include(('blog.urls',"blog"),namespace="blog")),
]

  2. 在/blog/目录下新建urls.py文件,添加如下代码

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

urlpatterns = [url(r'^$', views.blog_title, name="blog_title"),
                url(r'(?P<article_id>\d)/$', views.blog_article, name="blog_detail"),]

显示文章内容

  显示文章内容代码在views.py中已添加

def blog_article(request, articls_id):
    article = BlogArticles.objects.get(id=articls_id)
    pub = article.publish
    return render(request, 'content.html', {"article":article, "publish":pub})

  启动服务器:python manage.py runserver

  打开http://127.0.0.1:8000/blog/

  django初探-创建简单的博客系统(二)建议收藏

  点击标题查看文章内容

  django初探-创建简单的博客系统(二)建议收藏

设置文章列表页

  到目前为止,博客标题和内容的显示就完成了,附加添加如何设置发布博客页面的文章列表页

  django初探-创建简单的博客系统(二)建议收藏

  这样显示太过于单一,为了让其显示的更加丰富,可以在/blog/admin.py文件中添加如下代码:

from django.contrib import admin

from .models import BlogArticles
# Register your models here.

class BlogArticlesAdmin(admin.ModelAdmin):
    list_display = ("title", "author", "publish")
    list_filter = ("publish", "author")
    search_fields = ("title", "body")
    raw_id_fields = ("author",)
    date_hierarchy = "publish"
    ordering=["publish","author"]

admin.site.register(BlogArticles, BlogArticlesAdmin)  

  刷新页面:

django初探-创建简单的博客系统(二)建议收藏

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120183.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【面试必备】这道MySQL面试题难住了90%的程序员。。。「建议收藏」

    【面试必备】这道MySQL面试题难住了90%的程序员。。。

    2022年2月11日
    45
  • flask 教程_python flask快速入门与进阶

    flask 教程_python flask快速入门与进阶Flask入门基础教程Flask简介Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合

    2022年8月3日
    10
  • 美团Java面试一轮游,太激烈了,问啥啥不会,我该怎么办?

    美团Java面试一轮游,太激烈了,问啥啥不会,我该怎么办?一面1、自我介绍答:自我介绍是面试中唯一的自己主动介绍自己的环节,一定要好好把握好,你数据结构学的号可以手撕一个红黑树你就说我数据结构掌握地很好,反正就是要把自己的优势凸显出来,比如自己对于java的知识较熟悉,我介绍完自己的本科经历以后,我就说我是保送到本校继续读研究生,然后最末尾会加上自己熟悉java,然后面试官就会问java的一些东西;2、项目介绍及其亮点答:使劲吹…3、java的8种数据类型有哪些?答:感觉这个问题被问烂了,int,short,long,float,dou

    2022年7月7日
    28
  • cisco光纤交换机配置「建议收藏」

    cisco光纤交换机配置「建议收藏」1.初始化信息首次设置,必须通过console进行连接(需要U口转DB9针的接口线,专门卖接口线的有卖大约30元),然后进行初始化设计,以后设定IP后可通过LAN进行登陆具体步骤:(红色字体部分着重注意,需要进行设置,大部分按照默认设置即可,而且设置的部分进入管理工具软件可以更改)—-SystemAdminAccountSetup—-Enterthep…

    2022年5月21日
    106
  • 开机就提示“请安装TCP/IP协议,error=10106”的解决的方法

    开机就提示“请安装TCP/IP协议,error=10106”的解决的方法

    2021年11月14日
    93
  • 2020版Java视频教程|java零基础到就业全套视频教程线上免费观看,java免费教程直接看

    2020版Java视频教程|java零基础到就业全套视频教程线上免费观看,java免费教程直接看第一阶段:Java基础学习任何一门编程语言,首先要学习的是基础语法,开启Java学习的第一步,当然就是深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程,这些我们称之为JavaSE基础。当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面端软件。第二阶段:数据库互联网最具价值的是数据,任何编程语言都需要解决数据存储问题,而数据存储的关键技术是数据库。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Java

    2022年7月7日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号