django部分代码

ngingx配置文件更新代码,和展示

Python代码

# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.contrib import auth
from django.contrib.auth.decorators import login_required
import difflib
import os, sys
import requests 
import re
import urllib, urllib2
from django.core.paginator import Paginator
import commands
import MySQLdb
import time, datetime
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse
from django.template import RequestContext
from webip.models import AccessDizhi
from nginxet.models import NginxET, NginxEThistory
from django.shortcuts import get_object_or_404
from nginxet.form import HostsListForm
@csrf_exempt
def nginxfile(request):
    if request.method == ‘POST‘:
        date1 = datetime.datetime.now()
        date2 = date1 + datetime.timedelta(hours=14)
        date = date2.strftime(‘%Y-%m-%d %H:%M:%S‘)
        all_server1 = NginxET.objects.all().values_list(‘dirname‘,‘filename‘)
        c = []
        for i in all_server1:
            c.append(i)
        for root,dirs,files in os.walk(‘/data/nginxet/‘):
            dir_name = root.split(‘/‘)[3]
            if dir_name:
               for filed in files:
                   if filed:
                      filed3 = (u‘%s‘ %dir_name, u‘%s‘ %filed)
                      abc = c.count(filed3)
                      if abc > 0:
                          pass
                      else:
                          filedd = root+‘/‘+filed
                          filed1 = open(filedd, ‘r‘)
                          messages = filed1.read()
                          NginxET.objects.create(dirname=dir_name,filename=filed,message=messages,onlinetime=date,updatemessage=1,updatetime=date)
                          filed1.close()
                   else:
                      pass  
        all_server = NginxET.objects.all()
        paginator = Paginator(all_server,20)
        try:
            page = int(request.GET.get(‘page‘,‘1‘))
        except ValueError:
            page = 1
        try:
            all_server = paginator.page(page)
        except :
            all_server = paginator.page(paginator.num_pages)
        return render_to_response(‘nginxet.html‘,
                      {‘all_host_list‘: all_server, ‘page‘: page, ‘paginator‘:paginator},context_instance=RequestContext(request))
    else:
        all_server = NginxET.objects.all()
        paginator = Paginator(all_server,20)
    
        try:
            page = int(request.GET.get(‘page‘,‘1‘))
        except ValueError:
            page = 1
    
        try:
            all_server = paginator.page(page)
        except :
            all_server = paginator.page(paginator.num_pages)
        return render_to_response(‘nginxet.html‘,
                          {‘all_host_list‘: all_server, ‘page‘: page, ‘paginator‘:paginator},context_instance=RequestContext(request))
models代码
# -*- coding: utf-8 -*-
from django.db import models
class NginxET(models.Model):
    dirname = models.CharField(max_length=50, verbose_name=u‘目标地址‘)
    filename = models.CharField(max_length=100, verbose_name=u‘文件名‘)
    message = models.TextField(verbose_name=u‘nginx内容‘)
    updatemessage = models.TextField(verbose_name=u‘更新内容‘)
    onlinetime = models.DateTimeField(max_length=100, blank=True, verbose_name=u‘上线时间‘)
    updatetime = models.DateTimeField(max_length=100, blank=True, verbose_name=u‘更新时间‘)
    def __unicode__(self):
        return u‘%s - %s - %s - %s‘ %(self.dirname, self.filename, self.message, self.updatemessage, self.updatetime)
    class Meta:
        verbose_name = u‘目标地址‘
        verbose_name = u‘文件名‘
form代码
# -*- coding: utf-8 -*-
from django import forms
from nginxet.models import NginxET
class HostsListForm(forms.ModelForm):
#class HostsListForm(forms.Form):
    class Meta:
        model = NginxET
        fields = "__all__"
        widgets = {
          ‘dirname‘: forms.TextInput(attrs={‘class‘: ‘form-control‘}),
          ‘filename‘: forms.TextInput(attrs={‘class‘: ‘form-control‘}),
#          ‘message‘: forms.CharField(widget=forms.Textarea),
          ‘message‘: forms.TextInput(),
          ‘updatemessage‘: forms.TextInput(attrs={‘class‘: ‘form-control‘}),
          ‘onlinetime‘: forms.TextInput(attrs={‘class‘: ‘form-control‘}),
          ‘updatetime‘: forms.TextInput(attrs={‘class‘: ‘form-control‘}),
        }

html代码

{% extends "index.html" %}
{% block title %}OMS{% endblock %}
{% block css %}
<!-- DataTables-->
<link rel="stylesheet" href="/static/plugins/dataTables/css/dataTables.css">
{% endblock %}
{% block content %}
      <form action="http://:8999/nginxet/" method="POST">
      <div class="row">
            <div class="col-md-12">
                 <div class="panel panel-default">
                      <div class="panel-body">
                           {% if all_host_list %}
                           <table id="example" class="table table-striped table-bordered" cellspacing="0" width="100%">
                               <thead>
                                   <tr>
                                      <th>ID</th>
                                      <th>IP地址</th>
                                      <th>文件名</th>
                                      <th>上线时间</th>
                                      <th>更新时间</th>
                                   </tr>
                               </thead>

                               <tbody>
                               {% for all_host in all_host_list %}
                                   <tr>
                                      <td>{{ forloop.counter }}</td>
                                      <td>{{ all_host.dirname }}</td>
                                      <td>{{ all_host.filename }}</td>
                                      <td>{{ all_host.onlinetime }}</td>
                                      <td>{{ all_host.updatetime }}</td>
                                      <td><a href="{% url ‘message‘ id=all_host.id %}" class="btn btn-info btn-sm">内容展示</a>
                                          <a href="http://:8999/nginx_update/?update=1" style="color:white" class="btn btn-danger btn-sm" role="button">历史</a>
                                          <a href="http://:8999/nginx_diff/?id={{ all_host.id }}" class="btn btn-info btn-sm">最近一次更改比较</a>
                                          <a href="http://:8999/nginx/?id={{ all_host.id }}" class="btn btn-info btn-sm">推送</a></td>
                                   </tr>
                               {% endfor %}
                               </tbody>
                            </table>
                           {% endif %}
                            <div class="row">
                                 <div class="col-xs-6">
                                       <div class="dataTables_info" id="example_info" role="alert" aria-live="polite" aria-relevant="all"></div>
                                 </div>
                                 <div class="col-xs-6">
                                      <div class="dataTables_paginate paging_simple_numbers" id="exmaple_paginate">
                                           <a href="{% url ‘sousuo‘ %}" class="btn btn-info btn-sm" role="button">搜索</a>
                                           <a href="{% url ‘sousuoh‘ %}" class="btn btn-info btn-sm" role="button">历史搜索</a>
                                           {% if all_host_list.has_previous %}
                                                <a href="?page={{ all_host_list.previous_page_number }}">上一页</a>
                                           {% endif %}
                                           <span class="current">
                                                第{{ all_host_list.number }}页,共{{ all_host_list.paginator.num_pages }}页
                                           </span>
                                           {% if all_host_list.has_next %}
                                                <a href="?page={{ all_host_list.next_page_number }}">下一页</a>
                                           {% endif %}
                                      </div>
                                 </div>
                           </div> <!--row end-->
                         </div>
                     </div>
                 </div>
                 <div style = "text-align: center">
                 <button type="submit" class="btn btn-primary">全部更新</button>
                </div>
</form>
{% endblock %}
时间: 2024-10-23 07:55:24

django部分代码的相关文章

Django 项目代码布局

docs/ Makefile conf.py install deployment environments index project_name/ bin/ etc/ settings/ __init__.py base.py dev.py local.py   apps/                son_app1/ son_app2/ test.py models.py forms.py views.py extra_apps/      libs/                 p

Django框架代码和nginx的整合部署

1. nginx 安装不在此阐述,直接上关键配置 server { listen      80; server_name  _; access_log  /var/log/nginx/platform_admin.log  main; error_log /var/log/nginx/platform_admin_err.log ; location /static { root /var/www/platform_admin/resources/; } location / { uwsgi_

发布django到新浪SAE

很早新浪SAE就支持python.加以利用,挂载一些自己的小应用. 发布django应用到SAE,流程还是比较简单的. 1.首先在SAE新建一个Python应用. 新建空应用,直接上传本地已经写好的django应用代码. 新建完成后,本地目录的结构,很简单. 包括两个文件: index.wsgi和config.yaml 2.需要修改两个配置文件 .wsgi文件修改内容为 import os import django.core.handlers.wsgi import sae os.enviro

什么是django?

第一章 Django介绍 40 这本书是关于一个web开发框架Django的,它将节省你大量的时间,并且使你的web开发充满乐趣.通过Django,你可以建立一个高性能的web应用而只花费最小的消耗. 6 从好的方面来看,Web 开发激动人心且富于创造性:从另一面来看,它却是份繁琐而令人生厌的工作.通过减少重复的代码,Django 使你能够专注于 web 应用上有 趣的关键性的东西.为了达到这个目标,Django 提供了通用Web开发模式的高度抽象,提供了频繁进行的编程作业的快速解决方法,以及为

Django Book

The Django Book 2.0--中文版 第一章:介绍Django 本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django,使你能够以最小的代价构建和维护高质量的Web应用. 从好的方面来看,Web 开发激动人心且富于创造性:从另一面来看,它却是份繁琐而令人生厌的工作. 通过减少重复的代码,Django 使你能够专注于 Web 应用上有 趣的关键性的东西. 为了达到这个目标,Django 提供了通用Web开发模式的高度抽象,提供了频繁进行的编程

Django笔记 如何扩展User表的字段

django 自带的权限框架,其中auth_user表的字段,很难满足正常的需求,因此需要扩展,至于扩展,一般有如下几种选择: 1. 直接修改django 源码,修改User class 的定义,以及各种方法等,然后把数据库auth_user表里的字段扩展到与自己需求一致.(源代码在:django.contrib.auth.models import User),这种方式,每次升级django都得很小心. 2. 把django 的user以及认证部分的源代码拷贝到自己的app下面,然后修改,配置

关于django出现重复点击,多事务处理

重复点击对处理的时候,可能mysql默认事务是repated处理级别的,会导致读取数据一致带来多次更新. 解决办法: 1.在setting.py里设置更改mysql事务的级别. 2.用select_for_update行级锁. 3,由于django没有代码级设置下一次事务的级别,所以只能自己hack一下django,默认的版本不支持.

django中使用json.dumps处理数据时,在前台遇到字符转义的问题

django后台代码: import json ctx['dormitory_list'] = json.dumps([{"number": "111", "is_checked": 1}, {"number": "122", "is_checked": 0}, {"number": "133", "is_checked": 1

Window 7 64位 搭建 Django 开发环境

在 Eclipse + PyDev 搭建 Python 开发环境 的基础之上,如何搭建 Django 开发环境呢? 打开命令行,在命令行输入: conda install django 安装过程如下: Fetching package metadata ............. Solving package specifications: . Package plan for installation in environment C:\Anaconda3: The following NE