1.7 博客系统| 系统首页的导航区域| 主体布局| admin |首页文章列表的渲染

设置系统首页(文章列表渲染)

index.html

bootstrap里边的导航组件:https://v3.bootcss.com/components/

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/blog/bootstrap/css/bootstrap.css">
    <script src="/static/js/jquery-3.2.1.min.js"></script>
    <script src="/static/blog/bootstrap/js/bootstrap.min.js"></script>
    <style>
        #user_icon {
            font-size: 18px;
            margin-right: 10px;
            vertical-align: -3px;
        }
    </style>
</head>

<body>

{#<h3>{{  request.user.username}}</h3>#}
<nav class="navbar navbar-default">
    <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                    data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">博客园</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav">
                <li class="active"><a href="#">随笔 <span class="sr-only">(current)</span></a></li>
                <li><a href="#">新闻</a></li>
                <li><a href="#">博文</a></li>
                {#        <li class="dropdown">#}
                {#          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>#}
                {#          <ul class="dropdown-menu">#}
                {#            <li><a href="#">Action</a></li>#}
                {#            <li><a href="#">Another action</a></li>#}
                {#            <li><a href="#">Something else here</a></li>#}
                {#            <li role="separator" class="divider"></li>#}
                {#            <li><a href="#">Separated link</a></li>#}
                {#            <li role="separator" class="divider"></li>#}
                {#            <li><a href="#">One more separated link</a></li>#}
                {#          </ul>#}
                {#        </li>#}
            </ul>
            {#      <form class="navbar-form navbar-left">#}
            {#        <div class="form-group">#}
            {#          <input type="text" class="form-control" placeholder="Search">#}
            {#        </div>#}
            {#        <button type="submit" class="btn btn-default">Submit</button>#}
            {#      </form>#}
            <ul class="nav navbar-nav navbar-right">
                {% if request.user.is_authenticated %}
                    <li><a href="#"><span id="user_icon"
                                          class="glyphicon glyphicon-user"></span>{{ request.user.username }}</a></li>
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
                           aria-expanded="false">Dropdown <span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a href="#">修改密码</a></li>
                            <li><a href="#">修改头像</a></li>
                            <li><a href="/logout/">注销</a></li>
                            <li role="separator" class="divider"></li>
                            <li><a href="#">Separated link</a></li>
                        </ul>
                    </li>
                {% else %}
                    <li><a href="/login/">登录</a></li>
                    <li><a href="/register/">注册</a></li>
                {% endif %}

            </ul>
        </div><!-- /.navbar-collapse -->
    </div><!-- /.container-fluid -->
</nav>

</body>
</html>

主体其他部分

index.html

<div class="container-fluid">
    <div class="row">
        <div class="col-md-3">
            <div class="panel panel-warning">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
            <div class="panel panel-info">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
            <div class="panel panel-danger">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
        </div>
        <div class="col-md-6">222</div>
        <div class="col-md-3">
            <div class="panel panel-primary">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
            <div class="panel panel-default">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
        </div>
    </div>
</div>

</body>
</html>

admin:(不是必须的)

  Django内部的一个组件:后台数据管理组件(web页面)

  python manage.py createsuperuser   针对用户认证组件对应的用户表

必须用超级用户才能登录admin(django自动创建的)

admin.py

from django.contrib import admin

# Register your models here.

#登录之后写注册信息;8张表
from blog import models
admin.site.register(models.UserInfo)
admin.site.register(models.Blog)
admin.site.register(models.Category)
admin.site.register(models.Tag)
admin.site.register(models.Article)
admin.site.register(models.ArticleUpDown)
admin.site.register(models.Article2Tag)
admin.site.register(models.Comment)

基于admin录入文章数据

直接在admin里边操作,在Articles里边添加三篇文章

首页的文章列表的渲染

views.py

def index(request):

    article_list = models.Article.objects.all()  #拿到数据
    return render(request, "index.html", {"article_list": article_list}) #传到模板里边

index,html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/blog/bootstrap/css/bootstrap.css">
    <script src="/static/js/jquery-3.2.1.min.js"></script>
    <script src="/static/blog/bootstrap/js/bootstrap.min.js"></script>
    <style>
        #user_icon {
            font-size: 18px;
            margin-right: 10px;
            vertical-align: -3px;
        }
        .pub_info{
            margin-top: 10px;
        }
        .pub_info .glyphicon-comment{
            vertical-align: -1px;
        }
    </style>
</head>

<body>
.....................
<div class="container-fluid">
    <div class="row">
        <div class="col-md-3">
            <div class="panel panel-warning">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
            <div class="panel panel-info">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
            <div class="panel panel-danger">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
        </div>
        <div class="col-md-6">
            <div class="article_list">
                {% for article in article_list %}
                <div class="article-item">
                    <h5><a href="">{{ article.title }}</a> </h5>
                    <div class="article-desc">
                        <span class="media-left">
                            <a href=""><img width="56" src="media/{{ article.user.avatar }}" alt=""> </a>
                        </span>
                        <span class="media-right">
                            {{ article.desc }}
                        </span>
                    </div>
                    <div class="small pub_info">
                        <span><a href="">{{ article.user.username }}</a> </span> &nbsp;&nbsp;&nbsp;
                        <span>发布于&nbsp;&nbsp;{{ article.create_time|date:"Y-m-d H:i" }}</span>&nbsp;&nbsp;&nbsp;
                        <span class="glyphicon glyphicon-comment">评论({{ article.comment_count }})</span>&nbsp;&nbsp;&nbsp;
                        <span class="glyphicon glyphicon-thumbs-up">点赞({{ article.up_count }})</span>
                    </div>
                </div>
                {% endfor %}

            </div>
        </div>
        <div class="col-md-3">
            <div class="panel panel-primary">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
            <div class="panel panel-default">
                <div class="panel-heading">Panel heading without title</div>
                <div class="panel-body">
                    Panel content
                </div>
            </div>
        </div>
    </div>
</div>

</body>
</html>

原文地址:https://www.cnblogs.com/shengyang17/p/9403867.html

时间: 2024-10-12 00:31:33

1.7 博客系统| 系统首页的导航区域| 主体布局| admin |首页文章列表的渲染的相关文章

JavaWeb项目开发案例精粹-第4章博客网站系统-006View层

1.showAllArticle.jsp 1 <%@ page language="java" contentType="text/html; charset=gb2312" 2 pageEncoding="gb2312"%> 3 <%@taglib uri="/struts-tags" prefix="s"%> 4 <!DOCTYPE html PUBLIC "-/

模拟博客园系统

1. 启动程序, 显?菜单列表      菜单:      1. 登录      2. 注册      3. ?章      4. ?记      5. 退出 2. ?户输入选项, ?章和?记必须在登录后才可以进?操作.(装饰器) 3. ?户注册, 将?户名和密码写入到register?件中. 同时?成"article_?户名"?件?于 存储?户?章. 同时?成"diary_?户名" 来存储?户的?记内容. 4. ?户登录成功后, ?户名和密码从register?件

ASP基于B/S模式下的博客网站系统

互联网的普及给人们带来的便利不需多说.因此如果把个人博客与互联网结合起来,利用visual studio2008技术建设博客网站系统,实现个人博客的网络化. 根据本系统的研究现状和发展趋势,系统从需求分析.结构设计.数据库设计,在到系统实现,分别为前端实现和后端实现.论文内容从系统描述.系统分析.系统设计.系统实现.系统测试来阐述系统的开发过程.本系统力求结合实际找出一种切实可行的开发方案,经过反复研究和学习,借助visual studio2008编程语言.net技术.sqlserver数据库和

python简单模拟博客园系统

# 用代码模拟博客园系统## 项目分析:# 1.首先程序启动,显示下面内容供用户选择:## 1.请登录# 2.请注册# 3.进入文章页面# 4.进入评论页面# 5.进入日记页面# 6.进入收藏页面# 7.注销账号# 8.退出整个程序# 2.必须实现的功能:## 1.注册功能要求:# a.用户名.密码要记录在文件中.# b.用户名要求:不能有特殊字符并且确保用户名唯一.# c.密码要求:长度要在6~14个字符之间.## 2.登录功能要求:# a.用户输入用户名.密码进行登录验证.# b.登录成功之

怎样在博客园中添加自己的导航栏

原本想在博客园中添加自己的导航栏,摸索一番后才发现,博客园没有提供添加自己导航栏的功能.要是能自己写js来添加应该也是可以的,于是申请了js权限,申请了好多次都不通过,~~o(>_<)o ~~,今天终于审核通过了,自己尝试来添加导航. 准备导航栏js 我自己写了一个简单的jquery插件来添加或者移除导航,好,不多说了,贴出代码: (function(jQuery) { var arr = [], slice = arr.slice; var methods = { init: functio

JavaWeb项目开发案例精粹-第4章博客网站系统-005action层

1. 1 package com.sanqing.action; 2 3 import java.util.Date; 4 import java.util.Map; 5 6 import com.opensymphony.xwork2.ActionContext; 7 import com.opensymphony.xwork2.ActionSupport; 8 import com.sanqing.po.Article; 9 import com.sanqing.service.Articl

JavaWeb项目开发案例精粹-第4章博客网站系统-004Service层

1. 1 package com.sanqing.service; 2 3 import java.util.List; 4 5 import com.sanqing.fenye.Page; 6 import com.sanqing.fenye.Result; 7 import com.sanqing.po.Article; 8 9 public interface ArticleService { 10 //进行文章的保存 11 public void addArticle(Article a

JavaWeb项目开发案例精粹-第4章博客网站系统-001设计

1. 2. 3. 1 # MySQL-Front 5.0 (Build 1.0) 2 3 /*!40101 SET @[email protected]@SQL_MODE */; 4 /*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */; 5 /*!40111 SET @[email protected]@SQL_NOTES */; 6 /*!40103 SET SQL_

BBS(仿博客园系统)项目05(后台管理功能实现:文章添加、富文本编辑器使用、xss攻击、BeautifulSoup4模块、富文本编辑器上传图片、修改头像)

摘要 布局框架搭建 随笔添加 后台管理富文本编辑器KindEditor xss攻击 文章简介的截取,BeautifulSoup4模块 富文本编辑器上传图片 头像修改 一.后台管理框架布局搭建 后台管理布局框架分析:导航条.左侧功能区.右侧主要功能显示和实现区 实现: 导航条:使用bootstrap模板:JavaScript>>导航条 左侧:使用bootstrap模板:组件>>列表组 右侧:使用bootstrap模板:JavaScript>>标签页 新建后台管理路由(注意