web.py

1.安装:

wget http://webpy.org/static/web.py-0.37.tar.gz  

tar xvfz web.py-0.37.tar.gz  

cd web.py-0.37

sudo python setup.py install  

2.需求:

先说下需求,http://10.75.7.237:8080/?ipaddress=10.75.7.29&count=100 ,最终得到这个ip的日志的前100行

3.讲解:

#!/usr/bin/python

import web

render = web.template.render('templates/') 这是告诉你的web展现页面放在那个位置

urls = (

    '/', 'index'

)

这是告诉你访问/路径时所调用的类是index

class index:

    def reset_sigpipe(self):

        signal.signal(signal.SIGPIPE,signal.SIG_DFL)



    def GET(self):

        ip=web.input(ipaddress=None,count=None)  让url可以传输多个值名为ipaddress和count

        print ip['ipaddress']   

        print ip['count']

        a=ip['ipaddress']

        address_dict={'10.13.144.':'bx','10.73.26.':'tc','10.75.7.':'yf','10.67.15.':'yq'}

        aa=a.split(".")

        b=aa[0:3]

        d=aa[-1]

        e=".".join(b)

        c=e+"."

        address_1=address_dict[c]

        f=str(d)

        g=address_1+f

        time_day=time.strftime('%Y-%m-%d')

        #h_1=subprocess.Popen('grep -R %s /data1/saelog/%s/error/'%(g,time_day),shell=True,preexec_fn=self.reset_sigpipe(),stdout=subprocess.PIPE)

        #h=h_1.stdout.read()

        h = os.popen('grep -R %s /data1/saelog/%s/error/' % (g,time_day))

        print h

        head_list=[]

        sum=0

        dict={}

        head_lines=ip['count']

        print head_lines

        if head_lines:

                for i in h:

                        j=i.split(":")[1:]

                        head_list.append(j)

                for kk in head_list:

                        dict[sum]=head_list[sum]

                        sum+=1

                        if sum == int(head_lines):

                                break;

                dict_json=json.dumps(dict)


        else:

                for i in h:

                        j=i.split(":")[1:]

                        head_list.append(j)

                for kk in head_list:

                        dict[sum]=head_list[sum]

                        sum+=1

                dict_json=json.dumps(dict)

        print dict_json

        return render.index(dict_json)       传给页面展示的值

        #return "Hello, world!"


if __name__ == "__main__":

    app = web.application(urls, globals())

    app.run()



templates目录下

index.html


$def with (name)

$if name:

        $name    name为代码传过来的值


4.启动web.py

python test.py  后面不跟端口默认就是8080


5.访问http://10.75.7.237:8080/?ipaddress=10.75.7.29&count=100