一般的web应用是js + java(serverlet/controller),python也可以充当服务器后台,代码如下:

过程如下:

form表单—>经过服务器解析的【目标文件】 ----->处理提交的数据: 响应页面-打印输入

1, 前后端:流程演示

a,前端: 发送请求

form.html: 提交请求给web目录下的cgi-bin或 htbin的form.py

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>form表单,数据提交后台python</title>
</head>
<body><form method="post" action="http://localhost/cgi-bin/form.py"> <!--目标文件必须在cgi-bin包下,否则服务器不能解析-->name: <input type="text" name="user"><br/><input type="submit" value="提交"></form>
</body>
</html>

python_web_req.py:通过python脚本发送http请求

#通过脚本,发送http请求
from urllib.request import urlopen#调用方法: 发送http请求
conn=urlopen("http://localhost/cgi-bin/form.py?user=abc123")
res_data=conn.read()
print(res_data)

b, 后台: 处理数据

web_server.py: 启动服务器,解析请求的cgi文件

import os,sys
from http.server import CGIHTTPRequestHandler, HTTPServer#设置属性
webdir="."
port=80#启动http 服务
os.chdir(webdir)
server_addr=("",port)
server_obj=HTTPServer(server_addr, CGIHTTPRequestHandler)
server_obj.serve_forever()

form.py: 文件位置:必须在cgi-bin包下,因为含有cgi代码

import cgi# 字段解析
form_data = cgi.FieldStorage()
if form_data:user_name = cgi.escape(form_data['user'].value)
print("Content-type:text/html\n")
print("<title>reply page</title>")# 判断输入的数据
if not 'user' in form_data:print("<h1> who you are ? </h1> ")
else:print("<h1> hello %s </h1>" % user_name)

启动服务器,通过浏览器:打开form.html

点击提交: 开始请求后台form.py

或者直接通过python脚本:发送请求,并且接收响应

2, 以web的形式:管理数据

a,前端:发送请求

people.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>people info manage page !</title>
</head>
<body><form method="post" action="http://localhost/cgi-bin/people_cgi.py">key : <input type="text" name="key"><br/><br/>name: <input type="text" name="name"><br/>age : <input type="text" name="age"><br/>job : <input type="text" name="job"><br/><input type="submit" value="fetch" name="action"><input type="submit" value="update" name="action"></form>
</body>
</html>

b, 后端监听80端口:处理请求

web_server.py: 代码同上
people_cgi.py

#处理web页面请求
import cgi,shelve,sys,os#从字典文件中读取数据
file_name="../../oop/data/shelve_obj"
db=shelve.open(file_name)
#print(db["obj"]) #teacher对象: t2,43,teacher#定义属性
fields=("name","age","job")
#解析:输入的数据
params = cgi.FieldStorage()
cwd = os.getcwd() #D:\pycharm\PyCharm 2018.3.4\pyproject\test1\chapter1\gui\web_shelve
sys.path.insert(0,cwd)#定义方法
def fetch(db,form_param):try:key = form_param["key"].valuerecord = db[key]field_dict = record.__dict__field_dict["key"]=keyexcept:field_dict=dict.fromkeys(fields,"?")field_dict["key"]="missing or invalid key !"return field_dict#调用方法
if __name__=="__main__":#解析参数print("Context-type: text/html\n")action_method=params["action"].value if "action" in params else Noneif action_method=="fetch":res_data=fetch(db,params)print("""<html><body><form method="post" action="http://localhost/cgi-bin/people_cgi.py">""")print('key : <input type="text" name="key" value=%s><br/><br/> '%res_data["key"])for field in fields:print('%s : <input type="text" name="key" value=%s><br/> '%(field,res_data[field]))print("""</form><input type="submit" value="fetch" name="action"><input type="submit" value="update" name="action"></body></html>""")


点击fetch, 发送数据请求

python基础:web =html+ python相关推荐

  1. python基础知识面试题-python的一些基本概念知识和面试题

    对于机器学习算法工程师而言,Python是不可或缺的语言,它的优美与简洁令人无法自拔.那么你了解过Python编程面试题吗?从Python基础到网页爬虫你是否能全方位Hold住?今天,机器之心为读者们 ...

  2. python程序如何执行死刑_「Python基础知识」Python生成器函数

    原标题:「Python基础知识」Python生成器函数 对于程序而言,内存也是很重要的,因为程序中很多数据都是保存在内存中的,如果内存中存储的数据过多,那么系统就会崩溃,这是人们不希望发生的. 可以采 ...

  3. python基础知识-python基础知识,python必背内容,一、python的基

    python基础知识,python必背内容,一.python的基 一.python的基础 1.简单写一行python代码:print("hello,world')print("你好 ...

  4. python基础教程视频-Python基础视频教程全集

    原标题:Python基础视频教程全集 Python编程语言的定位是"优雅"."明确"."简单",所以对于Python初学者来说,学起来没有那 ...

  5. 什么是python基础教程-python基础教程之python是什么?概念解析

    Python,是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, 源代码和解释器CP ...

  6. Python基础教程,Python入门教程

    Python 是一门上手简单.功能强大.通用型的脚本编程语言.Python 类库极其丰富,这使得 Python 几乎无所不能,网站开发.软件开发.大数据分析.网络爬虫.机器学习等都不在话下. 这套 P ...

  7. Python基础 笔记(一) Python的介绍

    Python基础 笔记(一) Python的介绍 您好! 欢迎来到木易巷! 接下来,让我们一起来了解Python,走进Python~ 1.编程语言 编程语言(programming language) ...

  8. Python基础(简明Python教程)

    Python基础(简明Python教程) 参考简明Python教程 基本概念 注释符 # 基本数据类型 整数.长整数.浮点数(52.3E-4).复数(-5+4j) 字符串 对象 运算符 与Java基本 ...

  9. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  10. 【Python基础绘图】Python多张png合成gif动图

    [Python基础绘图]Python多张png合成gif动图 前段时间准备答辩ppt想展示下逐月的空间变化趋势,故想到了动图的方式,将多张png图片转变为gif动图.下面是代码记录一下. 首先需要准备 ...

最新文章

  1. 全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点
  2. Python实现 灰色关联分析 与结果可视化
  3. 聊聊asp.net中Web Api的使用
  4. json及JavaBean转json
  5. BFPTR算法详解+实现+复杂度证明
  6. 基于FPGA实现DAC8811接口(正弦波)
  7. 关于N82后摄像头拍照无法启动的超强技术解决方案
  8. qq邮箱服务器地址ip地址,如何查询对方QQ邮箱的ip地址?QQ邮箱ip地址的查询方法...
  9. 有赞云支付php接口,Erphpdown wordpress插件集成有赞云支付的接口申请方法
  10. python导出pdf_python生成pdf
  11. html语言ppt,htmlppt课件
  12. Java项目--网页版音乐播放器(JQuery前端逻辑)
  13. Cisco路由器VLan隔离局域网广播包的配置实验
  14. 计算机应用中英文缩写ai表示,2014年全国计算机等级一级考试题库
  15. 微信消息能在服务器上彻底清除,快速彻底删除微信消息的方法如此简单 很多人都用错了方法!...
  16. ReadFile WriteFile DO_DIRECT_IO 中的IRP操作
  17. java框架013——Spring AOP面向切面编程
  18. metrics和graphite监控
  19. java word标签替换_JAVA实现替换WORD模板中的文字和图片
  20. MOSFET原理学习

热门文章

  1. 采访 | 苹果菲尔·席勒:Face ID非常独特 其他家的人脸识别都很糟糕
  2. Storm-电商实时交易风控系统
  3. 俯仰角与横滚角的介绍
  4. 雍禾医疗上市的喜和忧:获80倍超额认购,利润开始下滑,成本高企
  5. 关于video++,jsrun,有道笔记等的感想
  6. 前端工程化-基于Taro的Web端Monorepo架构改造
  7. 安卓自定义view之——可滑动时间轴(时间刻度尺)
  8. 找不到XMAP下载地址的进来
  9. 归一化相关系数NCC
  10. oracle索引创建及删除