美文网首页
Python CGI 实战一:简易加法计算器

Python CGI 实战一:简易加法计算器

作者: CHASK | 来源:发表于2019-11-13 12:01 被阅读0次

小小吐槽,可直接跳过蛤:

  • 其实练习完基础代码后会发现,所谓CGI生成动态网页,其实就是把html代码塞进print('')里打印出来... 虽然是基于python可以直接进行数据库操作,但只能html->CGI->数据库单向传值,CGI生成的动态网页是可以传值,但CGI无法向html进行实时传值
  • 需要先写好html再塞进print里,无法向单个html文件传值,意味着要连接数据库得在CGI中写html... 那么我为什么不直接html+css+js+jsp呢!未免也太鸡肋了叭!!
  • 其实计算器也可以直接用html+css+js写!但是为了学习CGI...好了就不吐槽了,来写这个计算器吧!

最终效果

  • 要写的内容有count.py及count_model.py这两个文件:
  • 因为将html塞进print里代码会过于繁琐,所以尝试使用模板引擎,就是额外写一个类似组件的count_model.py文件,要使用的时候在count.py中调用就好


    image.png
  • 最终完成的效果,一个加法计算器:


    image.png

第一步:编写模板引擎 count_model.py

  • 在CGI-Executables中新建一个count_model.py文件
#头部
def start_response(resp="text/html"):
    return 'Content-type:'+resp+'\n\n'
#form
def start_form(the_url="",form_type="Post"):
    return '<form action="'+the_url+'"method="'+form_type+'">'

def end_form(submit_msg="Submit"):
    return '<p></p><input type="submit" value="'+submit_msg+'">'

#input
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

#div块
def start_div(align,style):
    return '<div align="'+align+'" style="'+style+'">'

def end_div():
    return '</div>'

#图片
def img(src):
    return '<img src="'+src+'">'

第二步:编写加法计算器 count.py

  • 在CGI-Executables中新建一个count.py文件
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#简易加法计算器
# CGI处理模块
import cgi, cgitb
#html代码量多,使用模板引擎
from count_model import *

# 创建 FieldStorage 的实例化
form = cgi.FieldStorage()

#设定num1 + num2 = num3
num1 = form.getvalue("Num1")
num2 = form.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("http://wx4.sinaimg.cn/large/7a876694gy1g8va7k3wskj207g07i0sx.jpg"))
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())

结束!

相关文章

网友评论

      本文标题:Python CGI 实战一:简易加法计算器

      本文链接:https://www.haomeiwen.com/subject/njrcictx.html