wuxi9864

后台管理需求:

1.实现对article 的增,删,改,查(编辑,查看,删除)

2.实现对标签的增,删,改,查

3.实现对分类的增,删,改,查

总之就是对博客的组成元素可以更改。。

首先看bokeurl:

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

urlpatterns = [
    path(\'admin/\', admin.site.urls),
    url(r"^backend/", include("backend.urls")),        #管理的url均以backend开头,然后在backend app 的url 文件里面匹配
    url(r"^trouble/",include("trouble.urls")),
    url("^",include("web.urls")),


]

backend.urls:

from django.conf.urls import url
from django.conf.urls import include
from .views import user
urlpatterns=[
    url(r\'^index.html$\',user.index),
    url(r\'^article-(?P<article_type_id>\d+)-(?P<category_id>\d+).html$\',user.article,name=\'article\'),
    url(r\'^edit-article-(?P<nid>\d+).html$\',user.edit_article),
    url(r\'^delete-article.html$\',user.delete_article),
    url(r\'^add-article.html$\',user.add_article),
    url(r\'^tag.html\',user.tag),
    url(r\'^add-tag.html$\',user.add_tag),
    url(r\'^edit-tag-(?P<nid>\d+).html$\',user.edit_tag),
    url(r\'^delete-tag.html$\',user.delete_tag),


]

一个一个来看吧:

首先 index:

views:

from django.shortcuts import render,HttpResponse,redirect
from repository import models
from utils.pagination import Pagination
from django.urls import reverse
from ..form import article_validate
from django.db import transaction
import json

def index(request):
    return render(request,"backend_index.html")  
backend_index_layout.html:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap/css/bootstrap.css"/>
    <link rel="stylesheet" href="/static/plugins/font-awesome/css/font-awesome.css"/>
    <script type="text/javascript" src="/static/js/jquery-1.12.4.js"></script>
    <script type="text/javascript" src="/static/plugins/bootstrap/js/bootstrap.js"></script>
    {% block css %}{% endblock %}
    <style>
        * {
            margin: 0;
            padding: 0;

        }


        .left {
            float: left;
        }

        .right {
            float: right;
        }

        .hide {
            display: none;
        }

        .pg-header {
            min-width: 900px;
            background-color: #2f72ab;
            height: 48px;
            color: white;
            line-height: 48px;


        }

        .pg-header .logo {
            width: 200px;

            text-align: center;
            font-size: 30px;
        }

        .pg-header .hr-menu {
            width: 300px;
            height: 48px;
        }

        .pg-header .master-right {
            margin: 0 12px;
        }

        .master-item {
            display: inline-block;
            padding: 0 10px;

        }

        .master {
            display: inline-block;
            position: relative;
            z-index: 2;

        }

        .master .sub {
            position: absolute;
            display: none;

        }

        .master .sub .sub-item {
            display: block;
            padding: 0 10px;
            background-color: #2f72ab;

        }

        .master:hover .sub {
            display: block;
        }

        .avatar {
            float: right;
            height: 48px;
        }

        .avatar img {
            margin-top: 5px;
        }

        .avatar .sub {
            margin-top: 0;
            margin-left: -45px;
            width: 77px;
        }

        .pg-body .menus {
            width: 200px;
            position: absolute;
            top: 48px;
            left: 0;
            bottom: 0;
            background-color: #b9def0;
        }

        .pg-body .contents {
            position: absolute;
            top: 50px;
            left: 200px;
            bottom: 0;
            right: 0;

            {#z-index: -1;#}

            overflow: scroll;
        }

        .pg-body .menus .menus-item {
            text-align: center;
            font-size: 18px;
        }

        .pg-body .menus .menus-item .item-title {

            color: green;
            padding: 8px;
            background-color: #dddddd;
        }

        .pg-body .menus .menus-item .item-content {
            margin-top: 15px;

        }

        .pg-body .menus .menus-item .item-content a {
            display: block;
            padding: 3px;

        }
         .pg-header a{
            color: white;
        }

    </style>
</head>
<body>
<div class="pg-header">
    <div class="logo left">EasyLife</div>
    <div class="hl-menu left">
        <a class="master-item">菜单一</a>
        <a class="master-item">菜单二</a>
        <a class="master-item">菜单三</a>
        <div class="master">
            <a class="master-item">菜单四</a>
            <div class="sub">
                <a class="sub-item">sub1</a>
                <a class="sub-item">sub2</a>
                <a class="sub-item">sub3</a>
            </div>

        </div>
    </div>
    <div class="hr-menu right">
        <div class="master master-right">
            <a class="master-item">消息
                <i class="fa fa-commenting-o" aria-hidden="true"></i>
                <span class="badge bg-success">2</span>
            </a>
            <div class="sub">
                <a href="" class="sub-item">sub1</a>
                <a href="" class="sub-item">sub1</a>
                <a href="" class="sub-item">sub1</a>
            </div>
        </div>
        <div class="master master-right">
            <a class="master-item">通知
                <i class="fa fa-envelope-o" aria-hidden="true"></i>
                <span class="badge bg-success">2</span>
            </a>
            <div class="sub">
                <a href="" class="sub-item">sub1</a>
                <a href="" class="sub-item">sub1</a>
                <a href="" class="sub-item">sub1</a>
            </div>
        </div>

        <div class="master master-right avatar">
            <img src="/static/imgs/default.png">
            <div class="sub">
                <a href="/backend/base-info.html" class="sub-item">个人信息</a>
                <a href="/logout.html" class="sub-item">注销</a>
                <a href="" class="sub-item">修改</a>
            </div>
        </div>

    </div>
</div>
<div class="pg-body">
    <div class="menus">
        <div class="menus-item">
            <div class="item-title">个人管理</div>
            <div class="item-content">
                <a href="/backend/article-0-0.html">
                    <i class="fa fa-cogs" aria-hidden="true"></i>
                    文章管理
                </a>
                <a href="/backend/tag.html">
                    <i class="fa fa-cogs" aria-hidden="true"></i>
                    标签管理</a>
                <a href="/backend/category.html">
                    <i class="fa fa-cogs" aria-hidden="true"></i>
                    分类管理
                </a>
            </div>
        </div>
        <div class="menus-item">
            <div class="item-title">标题2</div>
            <div class="item-content">
                <a>文章管理</a>
                <a>标签管理</a>
                <a>分类管理</a>
            </div>
        </div>
        <div class="menus-item">
            <div class="item-title">标题3</div>
            <div class="item-content">
                <a>文章管理</a>
                <a>标签管理</a>
                <a>分类管理</a>
            </div>
        </div>
    </div>
    <div class="contents">
        {% block content %}{% endblock %}
    </div>
</div>
<div class="pg-footer"></div>

<script src="/static/js/jquery-1.12.4.js"></script>
{% block js %}{% endblock %}
<script>
    $(function () {
        $(".item-content").addClass("hide");                   #实现点击这个菜单的时候,隐藏其他的菜单
        $(".item-title").click(function () {
            $(this).siblings(".item-content").removeClass("hide");
            $(this).parent().siblings().find(".item-content").addClass("hide");
        });
    });


</script>
</body>
</html>

index.html

{% extends "backend_layout.html" %}
{% block content %}
    <div class="jumbotron">
        <h1>Hello,{{ request.session.user_login }}</h1>

        <div style="margin-left: 200px"><a class="btn btn-primary btn-lg" href="/backend/article-0-0.html" role="button">进入</a></div>
    </div>
{% endblock %}

 

点击标题2时,隐藏个人管理菜单的的子菜单

分类:

技术点:

相关文章: