CGI编程
通用网关接口
BASE
A目录下创建cgi-bin目录 和views目录
cmd 到A目录执行 python -m CGIHTTPServer 8081
nn\dd\A> python -m CGIHTTPServer 8081
Serving HTTP on 0.0.0.0 port 8081 …
浏览器输入:
http://localhost:8081/cgi-bin/1.py 便可执行1.py这个文件
1.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/6/24 0024 19:46
# @Author : zhumin
print "Content-type:text/html \n\n"
print "Hello Web Development"
浏览器:
参数传递
import cgi,cgitb
form1 = cgi.FieldStorage()
name = form1.getvalue("name")
print "Content-type:text/html \n\n"
print "Hello " +name
综合模板
templates.py
def start_response(resp="text/html"):
return 'Content-type: '+resp+ '\n\n'
def start_form(the_url="",form_type="GET"):
return '<form action="'+the_url+'"method="'+form_type+'">'
def end_form(submit_msg="Submit"):
return '<p></p><input type="submit" value="' +submit_msg+'">'
def input_label(name,placeholder="",value="",readonly=None):
if readonly is None:
return '<input type="text" value="'+value+'" name="'+name+'" placeholder="'+placeholder+'">'
else:
return '<input type="text" value="'+value+'" readonly="'+readonly+'" name="'+name+'" placeholder="'+placeholder+'">'
def context(word):
return word
def start_div(align,style):
return '<div align="'+align+'"style="'+style+'">'
def end_div():
return "</div>"
def img(src):
return '<img src="'+src+'">'
main.py:
import cgi,cgitb
from tempalates import *
form1 = cgi.FieldStorage()
num1=form1.getvalue("Num1")
num2=form1.getvalue("Num2")
num3=None
if not num1 is None and not num2 is None:
num1=int(num1)
num2=int(num2)
num3=num1+num2
print start_response()
print start_div("center","margin-top:40px;")
print img("../views/add.png")
print end_div()
print start_div("center","margin-top:60px;")
print start_form()
print input_label("Num1","adder-1")
print "+"
print input_label("Num2","adder-2")
print "="
if num3 is None:
print input_label("Num3","result","","readonly")
else:
print input_label("Num3","result",str(num3),"readonly")
print end_form()
print end_div()