zoukankan      html  css  js  c++  java
  • django初探-创建简单的博客系统(二)

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

    显示博客信息

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

      

    显示文章标题

    获取数据

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

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

      python manage.py shell

      

      对BlogArticles类可以进行类似操作

      

    添加模板

      在/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/

      

      点击标题查看文章内容

      

    设置文章列表页

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

      

      这样显示太过于单一,为了让其显示的更加丰富,可以在/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)  

      刷新页面:

  • 相关阅读:
    JS运算符之void
    JS的常用事件
    JS中的数据类型
    企业如何搭建管理驾驶舱
    项目启动会必须汇报的26个要素
    想要读懂大数据,你不得不先掌握这些核心技术
    关于oracle数据库中读取文件路径的问题整理
    文档:用博客做技术文档的总结
    Kettle 作业(Job)和 转换(Transform)
    子网划分很难?10分钟教会你口算子网划分!又快又准!
  • 原文地址:https://www.cnblogs.com/xiaobingqianrui/p/8649027.html
Copyright © 2011-2022 走看看