django搭建一个小型的服务器运维网站-拿来即用的bootstrap模板

news/2024/5/10 1:59:08/文章来源:https://blog.csdn.net/weixin_30562507/article/details/97687020

目录

  1. 项目介绍和源码;
  2. 拿来即用的bootstrap模板;
  3. 服务器SSH服务配置与python中paramiko的使用;
  4. 用户登陆与session;
  5. 最简单的实践之修改服务器时间;
  6. 查看和修改服务器配置与数据库的路由;
  7. 基于websocket的实时日志实现;
  8. 查看服务器中的日志与前端的datatable的利用;
  9. 重启服务器某个进程;

前言

  想要快速的搭建好一个网站,前端必然少不了,如果自己大费周折在怎么去从0到1创建一个前端工作量就会太大了,所以最简单的方法是直接在网上寻找已经写好的前端模板资源,这样的资源可以直接百度/谷歌关键词:bootstrap前端模板,搜索会出来很多的模板,选择觉得合适的模板就可以拿来作为自己网站的前端了。

下载前端模板

  文章中用到的模板叫做DASHGUM,点击该链接可以去预览下这个前端资源的样子,现在,准备把该模板下载下来,我们要把它改造成适合自己需求的样子。
  模板资源下载OK,打开资源可以看到图1中资源的内容,这些内容是可以缩减的,用到的时候取里面的组件就好,只要css、js、assets文件在,并且被正确引用,组件的逻辑响应和样式都不需要我们自己过多的考虑。

图1 DASHGUM中的内容

创建项目

  我的django版本是1.11.10,直接可以通过pip安装(安装过程中如果提示缺什么库就补什么库),python是2.7的版本。准备就绪,开始创建项目。在目录下执行django-admin.py startproject WebTool,项目根目录下django-admin.py startapp server创建一个app,然后在根目录下创建一个templates文件夹用来存放前端资源,在templates文件夹下创建一个app专属的资源文件夹命名为servermaterial,把DASHGUM中的内容放在该目录下,最后的项目结构如图2所示。
图2 项目结构

简单显示

修改settings

  • INSTALLED_APPS增加server:
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'server', ]
  • MIDDLEWARE注释掉django.middleware.csrf.CsrfViewMiddleware。
  • 添加资源的相关配置:
STATIC_URL = '/templates/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "templates"),
)
  • TEMPLATES的'DIRS'字段增加templates:
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': ['templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]

修改资源

  我们想要显示index.html,于是打开index.html,修改其所有的css和js资源的href,如图3,图片只给出了css资源路径的修改,js资源同理修改,在其前面加上/templates/servermaterial/这个资源路径:

图3 修改资源路径

修改项目的urls

  这里,考虑到项目的urls自身会处理诸如登陆的逻辑,并且一个项目可能会有多个app的情况,我们把这个index.html给server这个app自己去处理,在WebTool下的urls.py中增加一个路由到server的urls中,代码如下:

from django.conf.urls import include, url
from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^server/', include('server.urls', namespace="server")), ]

app的urls和views

  • 增加urls文件

  app(本文中的app即server)本身不含有urls文件,我们需要自己创建一个路由文件,用来在app内部路由,代码如下。

from django.conf.urls import url
import viewsurlpatterns = [url(r'^$', views.homepage), url(r'^home', views.homepage), ]
  • 修改views文件

  views文件收到urls的请求,将index.html渲染出来,代码如下。

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render_to_response # Create your views here. def homepage(request): return render_to_response('servermaterial/index.html')

开启项目,进入index.html

  在项目下运行python manage.py runserver 8888,然后打开网站输入网址:http://127.0.0.1:8888/server/home就可以显示如图4的网址了,其中的逻辑就不阐述了,网址中的server是我的app,home是app中的urls,它调用views中的渲染函数渲染这个页面。

图4 显示网站

简化资源

  如图5,打开原始的资源中的index.html文件可以看到文件会带有一个页脚、网页左侧的导航和网页上方的导航菜单和网页独有的内容,事实上你打开所有的如图1的原始资源中的html文件都会有重复的部分,而本网页的单独内容写在图3的红色框之内,即id='main-content'中的内容,其实这样不利于网页的扩展性。所以我们需要把模板简化,于是我们把网站页面共用的css,js资源以及导航栏、页脚作为base.html,并将它保存在servermaterial下面取代原来所有的html文件(其它的html共用部分已经抽离在base.html中了,可以删除掉,后面每个页面单独用到的组件再在原来的众多html文件代码中找)。

图5 简化前的html

  修改时,我们要考虑网站贴近自己的需求,有哪些功能需要写在导航栏(配置、时间、重启、日志等)里面,具体网页做的功能需要从base.html中抽离出来,写在id="main-content"中,其他的网页只需要继承这个base.html就可以了,改造后的base.html代码如下:
  代码中{% block title %}{{ title }}{% endblock %}、{% block log %}{{ title }}{% endblock %}给继承base.html的网页提供自己的标题。
  代码中{% block username %}{% endblock %}给继承base.html的网页提供登陆人的名字。
  代码中{% block othercss %}{% endblock %}给继承base.html的网页提供自己的CSS格式。
  代码中{% block mainbody %}{% endblock %}给继承base.html的网页提供自己的具体网页内容。
  代码中{% block scripts %}{% endblock %}给继承base.html的网页提供自己的js文件。

<!DOCTYPE html>
<html lang="en"> <head> <meta charset="utf-8"> <title>{% block title %}{% endblock %}</title> <link rel="shortcut icon" href="/templates/favicon.ico"> <!-- Bootstrap core CSS --> <link href="/templates/servermaterial/assets/css/bootstrap.css" rel="stylesheet"> <!--external css--> <link href="/templates/servermaterial/assets/font-awesome/css/font-awesome.css" rel="stylesheet" /> <!-- Custom styles for this template --> <link href="/templates/servermaterial/assets/css/style.css" rel="stylesheet"> <link href="/templates/servermaterial/assets/css/style-responsive.css" rel="stylesheet"> <link href="/templates/servermaterial/assets/SweetAlert2/dist/sweetalert2.css" rel="stylesheet"> {% block othercss %}{% endblock %} </head> <body> <section id="container" > <!-- ********************************************************************************************************************************************************** TOP BAR CONTENT & NOTIFICATIONS *********************************************************************************************************************************************************** --> <!--header start--> <header class="header black-bg"> <div class="sidebar-toggle-box"> <div class="fa fa-bars tooltips" data-placement="right" data-original-title="Toggle Navigation"></div> </div> <!--logo start--> <a href="home.html" class="logo"><b>{% block log %}{% endblock %}</b></a> <!--logo end--> <div class="top-menu"> <ul class="nav pull-right top-menu"> <li><a class="logout" href="#">退出服务器</a></li> </ul> </div> </header> <!--header end--> <!-- ********************************************************************************************************************************************************** MAIN SIDEBAR MENU *********************************************************************************************************************************************************** --> <!--sidebar start--> <aside> <div id="sidebar" class="nav-collapse "> <!-- sidebar menu start--> <ul class="sidebar-menu" id="nav-accordion"> <p class="centered"><a href="home.html"><img src="/templates/servermaterial/assets/img/ui-sam.jpg" class="img-circle" width="60"></a></p> <h5 class="centered">{% block username %}{% endblock %},你好</h5> <li class="sub-menu"> <a href="servertime.html" > <i class="fa fa-calendar"></i> <span>服务器时间</span> </a> </li> <li class="sub-menu"> <a href="javascript:;" > <i class="fa fa-desktop"></i> <span>服务器日志</span> </a> <ul class="sub"> 

转载于:https://www.cnblogs.com/276815076/p/9003051.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_794419.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

主题网站

主题网站一般国外的多一些 国内的大多也不是原创。都是从国外的网站DOWN来的 先是几个网络硬盘的连接主题很多 http://alexjitaojun.ys168.com/ http://alexjitaojun1.ys168.com/ http://asca.ys168.com/ 1&#xff1a;国内网站 http://www.gznat.com/ http://www.enet.com.cn…

微软Sharepoint管理工具包详解-批量网站集操作

微软Sharepoint管理工具包详解-批量网站集操作 前几天有人问我关于操作网站集的一些问题&#xff0c;其实微软也提供了一个批量操作网站集的功能。在这里我把具体的操作方法提供给大家。 首先&#xff0c;需要从微软官方网站下载管理工具包&#xff0c;下载地址&#xff1a; h…

阿里云+wordpress搭建个人博客网站【小白专用的图文教程】

【正文】 在阿里云上搭建使用个人博客主要分为以下几个步骤&#xff1a; 1、购买阿里云ECS主机 2、购买域名 3、申请备案 4、环境配置 5、安装wordpress 6、域名解析 声明一下&#xff0c;本人对服务器端的知识不是很熟悉&#xff0c;但一心想做个自己的个人网站装一下哔&…

CCTV网站菜单技术学习

以前的一个项目中左右菜单太长&#xff0c;想实现可以左右滚动的效果&#xff0c;可是一直没有找到理想的解决方案&#xff0c;今天突然看到CCTV上菜单很炫&#xff0c;实现了我当时想要的效果。赶快来学习一下。 我判断前台是用下面的代码实现&#xff1a; <div id"im…

用VSTS进行网站压力测试

用VSTS进行网站压力测试 VSTS提供了一个丰富、强大的工具平台&#xff0c;融合了软件开发领域的各个角色&#xff0c;涵盖软件开发生命周期的各个阶段&#xff0c;包括设计&#xff0c;开发&#xff0c;测试&#xff0c;管理&#xff0c;而这一整套构件的融会贯通&#xff0c;…

网站免费在线客服源代码(powertalk系统,修改版,修改客服端由于XP不同不能登录问题)...

首先很感谢博客园里的朋友们的支持和关注,现把Powertalk客服系统进行了代码修改,解决了大部分XP系统不能使用客户端的问题. 同时向大家介绍几个Powertalk控件使用的广告设置技巧. 在中间栏翻滚的广告设置,其实是设置一个URL地址,并连接一个广告字符串,具体设置在PowerTalk\IM\C…

世界上最坚固的网站,也有可能被攻击

即使是世界上最坚固的网站&#xff0c;也有可能被攻击。 最近&#xff0c;三大运营商劫持流量的事情让很多互联网公司群情激愤。面对伤痕累累的友商&#xff0c;阿里巴巴却在一旁作壁上观。因为其在去年就启动了淘宝、天猫等全站的协议加密。利用https协议让网站和用户之间的沟…

Asp.Net MVC3.0网站统计登录认证的在线人数

Asp.Net MVC3.0网站统计登录认证的在线人数 前言 对于一个网站来说&#xff0c;统计在线人数是一个很重要的工作。平时也发现很多的网站论坛等都有在线人数的显示。对于一个网站如果在线人数很多&#xff0c;用户看到了这么个数字也是很了不起的事情。由于之前对于这个知识点只…

烽火18台系列之十——钓鱼网站监控的需求与实战

身边的网络钓鱼 提到钓鱼网站&#xff0c;大家再熟悉不过了。如果您是网站运维人员&#xff0c;尤其是金融、电子商务、教育行业的&#xff0c;很有可能就经历过自己的网站被仿冒的事件。如果作为个人&#xff0c;我敢说您百分百经历过钓鱼事件。比如您一定收到过以下类似信息&…

大型网站框架从单台服务器到群集的演变过程(转)

关键词: 架构 性能 数据库 服务器 之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值 得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的结果&#xff0c;而没有很详细的讲为什么需要做这样的演变&#xff0c;再…

大型网站架构

前言 本文是对《大型网站架构设计》(李智慧 著)一书的梳理&#xff0c;类似文字版的“思维导图”全文主要围绕“性能&#xff0c;可用性&#xff0c;伸缩性&#xff0c;扩展性&#xff0c;安全”这五个要素性能&#xff0c;可用性&#xff0c;伸缩性这几个要素基本都涉及到应用…

分享学习网站网址

2019独角兽企业重金招聘Python工程师标准>>> http://yingyangpeople.com/ 个人代理极速云http://www.iyunv.com/forum.php linux学习网址https://www.elastic.co/guide/index.html elk学习网址https://github.com/roncoo/roncoo-cmdb 龙果系统&#xff08;运维&…

phpcms中调用外部网站数据

1、在phpcms后台模块->模块管理->数据源->外部数据源 中 添加外部数据源2、在phpcms前台模板中&#xff0c;使用get标签获取数据源中数据。{pc:get sql"SELECT * FROM pre_forum_thread" cache"3600" dbsource"discuz" return"dat…

扁平化网站结构为什么对搜索引擎友好

扁平化网站结构为什么对搜索引擎友好 了解过搜索引擎爬虫抓取爬行的可能会有一个比较清晰的答案&#xff0c;是的就是帮助爬虫尽可能的抓取页面&#xff0c;只有被读取到的页面才有可能被收录。 扁平化的结构将网站的页面尽可能的直接展示在蜘蛛爬虫面前或者很容易被爬虫发现&a…

《流量的秘密 Google Analytics网站分析与商业实战》一2.5 有问有答:选择合适的工具...

本节书摘来自异步社区《流量的秘密 Google Analytics网站分析与商业实战》一书中的第2章&#xff0c;第2.5节&#xff0c;作者 【英】Brian Clifton&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 2.5 有问有答&#xff1a;选择合适的工具 参考资料1 www.b…

一个关于各语言对比的网站

2019独角兽企业重金招聘Python工程师标准>>> http://hyperpolyglot.org/ 转载于:https://my.oschina.net/xiaobingchuanqi/blog/894603

【ASP.NET 问题】IIS发布网站后出现 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误的解决办法...

首先设置4.0缓冲池&#xff0c;然后执行以下操作。 新装IIS&#xff0c;然后发布网站&#xff0c;运行出现如下错误提示 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” 于是去网上找资料&#xff0c;轻松搞定。o(∩_∩)o …

win7+iss7的配置,以及如何在本地IIS服务器挂载一个网站

虽然学过在XP安装IIs服务器和在IIS服务器挂载网站的东西&#xff0c;但是win7和X&#xff30;的方式还是有许多不同的。废话不说直接进入正题 在本地安装IIS服务器在IIS服务器中添加你的项目将你项目的首页设置为整个网站的默认页设置你的网站的其他的一些选项下面就按点说明&a…

鼠标移至div内部其他层时,触发mouseout

话说有一个DIV元素&#xff0c;其内部有一个IMG元素和SPAN元素&#xff0c;不用理会这两个内部元素怎么布局&#xff0c;这不是我要讨论的重点。 为了实现一些特殊的效果&#xff0c;我需要利用TD的onmouseover和onmouseout事件&#xff0c;测试时就会发现如下的状况&#xff1…

处理 Vue 单页面 SEO 的另一种思路

vue-meta-info 官方地址&#xff1a; https://github.com/monkeyWang... &#xff08;设置vue 单页面meta info信息&#xff0c;如果需要单页面SEO&#xff0c;可以和 prerender-spa-plugin形成更优的配合&#xff09; 单页面应用在前端正大放光彩。三大框架 Angular、Vue、Rea…