86754tr 发表于 2017-9-11 10:39:28

Python脚本之django

# tar -zxvf Django-1.5.1.tar.gz
# cd Django-1.5.1
# python setup.py install
# cd django/bin/
# ./django-admin.py startproject myweb
# cd myweb
# ./manage.py runserver 0.0.0.0:8000
#http://192.168.1.10:8000/
--------------------------------------------------------------
# cd myweb
# pwd
/tmp/python/Django-1.5.1/django/bin/myweb/myweb
vi view.py
from django.http import HttpResponse
import datetime,time,os
def hello(request):
      return HttpResponse('hello my name is xk')
def current_time(request):
      now=datetime.datetime.now()
      html="It is now :%s"%now
      return HttpResponse(html)
def cpu(request):
      status=os.popen('top -bn 1').read()
      html="<pre>%s"%status
      return HttpResponse(html)
def hours_ahead(request,h):
      offset=int(h)
      dt=datetime.datetime.now() + datetime.timedelta(hours=offset)
      html="In %s hours later,It is %s"%(h,dt)
      return HttpResponse(html)
----------------------------------------------------------------------------
# vi urls.py
from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
from myweb.view import hello,current_time,cpu,hours_ahead

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'myweb.views.home', name='home'),
    # url(r'^myweb/', include('myweb.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),
    (r'^hello/$',hello),
      (r'^time/$',current_time),
      (r'^cpu/$',cpu),
      (r'^time/plus/(\d{1,2})/$',hours_ahead),
)

#http://192.168.1.10:8000/hello/
#########################################################模板
# pwd
/tmp/python/Django-1.5.1/django/bin/myweb/myweb
# tail -2000 view.py
from django.shortcuts import render_to_response
import os
import paramiko
hosts=['192.168.1.10','192.168.1.11','192.168.1.12','192.168.1.13']
username='root'
password='123456'
port=22
d_usage={}
def disk(request):
      for hostname in hosts:
                if os.system('ping %s -c 1'%hostname)==0:
                        paramiko.util.log_to_file('paramiko.log')
                        s = paramiko.SSHClient()
                        s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
                        s.connect(hostname,port,username,password)
                        stdin,stdout,stderr=s.exec_command('free')
                        d_usage= stdout.read()
                        s.close()
                else:
                        d_usage='host Destination Host Unreachable'
                name={'xkq':,'zq':,}
      return render_to_response('disk.html',{"d_usage":d_usage,'name':name,})
------------------------------------------------------------
# pwd
/tmp/python/Django-1.5.1/django/bin/myweb/myweb/templates
# tail -1000 disk.html
<html>
<body>
<p> show disk usage<p></br>
{{d_usage}}</br>
{% for ip,value in d_usage.items %}
      {{ip}}
<pre>   {{value}}</pre>

{% endfor %}
      {{name}}
</body>
</html>
##########################################测试不对一下
from django.shortcuts import render_to_response
import multiprocessing
import os,time
import paramiko
hosts=['192.168.1.10','192.168.1.11']
#,'192.168.1.12','192.168.1.13']
username='root'
password='123456'
port=22
name={}
d_usage=[]
#d_usage={}
def cmd(hostname):
      if os.system('ping %s -c 1'%hostname)==0:
                paramiko.util.log_to_file('paramiko.log')
                s = paramiko.SSHClient()
                s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
                s.connect(hostname,port,username,password)
                stdin,stdout,stderr=s.exec_command('free')
#               d_usage= stdout.read()
#               print stdout.read()
                print 'xukeqiang'
                s.close()
      else:
#               d_usage='host Destination Host Unreachable'
                print'host Destination Host Unreachable'
                name={'xkq':,'zq':,}
      #       sleep.time(10)
def disk(request):
      p=multiprocessing.Pool(processes=2)
      for hostname in hosts:
                d_usage.append((p.apply_async(cmd,('%s'%hostname,))))
      time.sleep(20)
      p.close()
#       p.join()
      for i in d_usage:
                i.get(timeout=20)

      time.sleep(10)
      return render_to_response('disk.html',{"d_usage":d_usage,'name':name,})







页: [1]
查看完整版本: Python脚本之django