python服务器端、客户端的模型,客服端发送请求,服务端进行响应(web.py)
服务器端、客户端的模型,客服端发送的请求,服务端的响应
相当于启动了一个web server
install web.py 接口框架用到的包
http://webpy.org/tutorial3.zh-cn 官方网址
http://webpy.org/tutorial3.zh-cn
需要装一个web.py的包,接口就是用web.py来做的,文件上传之类的
可以看一下web.py的官方教程,学习一下服务器端程序时怎么写的
学学服务端编程的主题
pip install web.py
Urls=()路由
App表示路由在程序应用里全局生效
类里定义访问跟程序的对应关系,就是路由
def Get 表示对GET的请求做处理
上传文件时,html中有<form enctype=’multipart/form-data’ action=>,multipart/form-data-表明身份,action-提交表单
Action表单元素的value所提交的网页,用来验证捕获get或post的值是否正确,例如账户信息
Interface_index.py:
# -*- coding: utf-8 -*-
import web
from web import form
import cgi
#动态的往模板(templates是一个静态网页)里填充数据
render = web.template.render('templates/')
路由,访问跟程序的对应关系
urls = (
#’http://127.0.0.1:8080/’默认没加任何地址,会调用下边的index类的GET方法
'/', 'index',
#’http://127.0.0.1:8080/interface’加了/interface,会调用下边的interface类的GET或post方法
'/interface', 'interface'
)
app = web.application(urls, globals())
class index:
def GET(self):
#return "Hello, world!"
#print "hello world"
#form = myform()
# make sure you create a copy of the form by calling it (line above)
# Otherwise changes will appear globally
#print(form.render())
return render.formtest()#返回模板页面,没有任何东西
class interface:
def GET(self): return "hi"
def POST(self):
i = web.input()#是一个字典
print “i:”,i
return 'form value:',i.title#把字典key名为title的值给取到
if __name__=="__main__":
web.internalerror = web.debugerror
app.run()
formtest.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>haha</title>
</head>
<body>
<form method="post" action="interface">
<p><input type="text" name="title" /> <input type="submit" value="submit" /></p>
</form>
</body>
</form>
</html>
目录存放结构:
启动web.py服务
D:\test\study>python interface_index.py
访问http://127.0.0.1:8080/没加任何路径,访问index,就是返回一个页面
访问/interface路径,访问GET
http://127.0.0.1:8080/interface
访问post,在http://127.0.0.1:8080/页面,输入内容,点击submit后自动进行post访问,页面会调到http://127.0.0.1:8080/interface
# -*- coding: utf-8 -*-
import web
from web import form
import cgi
render = web.template.render('templates/')
#路由
urls = (
'/', 'index',
'/interface', 'interface'
)
app = web.application(urls, globals())
class index:
def GET(self):
#return "Hello, world!"
#print "hello world"
#form = myform()
# make sure you create a copy of the form by calling it (line above)
# Otherwise changes will appear globally
#print(form.render())
return render.formtest()
class interface:
def GET(self): return "hi"
def POST(self):
i = web.input()
print "i:",i
return 'form value:',i.title,i #form value是字符串
if __name__=="__main__":
web.internalerror = web.debugerror
app.run()
index页面输入helloxia点击submit
后台:
i: <Storage {'title': u'helloxia'}>
127.0.0.1:49925 - - [18/Jun/2018 22:36:05] "HTTP/1.1 POST /interface" - 200 OK
我提交的字段的名字作为key,值作为value
这就是介绍了一下服务器端是怎么工作的
python服务器端、客户端的模型,客服端发送请求,服务端进行响应(web.py)的更多相关文章
- 基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据
这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ...
- 记录下httpclient 发送请求 服务端用@RequestBody 自动接收参数 报415
注解是post方式,那么检查以下内容:1. 你是否用了post请求2. 请求是否发送了数据3. 请求内容格式需要是 application/json .jquery 设置 contentType,-- ...
- android菜鸟学习笔记24----与服务器端交互(一)使用HttpURLConnection和HttpClient请求服务端数据
主要是基于HTTP协议与服务端进行交互. 涉及到的类和接口有:URL.HttpURLConnection.HttpClient等 URL: 使用一个String类型的url构造一个URL对象,如: U ...
- WebApi用JilFormatter处理客户端序列化的字符串加密,之后在服务端解析。
本文有改动,参考原文:https://www.cnblogs.com/liek/p/4888201.html https://www.cnblogs.com/tonykan/p/3963875.htm ...
- 在OneThink(ThinkPHP3.2.3)中整合阿里云OSS的PHP-SDK2.0.4,实现Web端直传,服务端签名直传并设置上传回调的实现流程
在OneThink(ThinkPHP3.2.3)中整合阿里云OSS的PHP-SDK2.0.4,实现本地文件上传流程 by shuijingwan · 2016/01/13 1.SDK安装 github ...
- springboot+spring security +oauth2.0 demo搭建(password模式)(认证授权端与资源服务端分离的形式)
项目security_simple(认证授权项目) 1.新建springboot项目 这儿选择springboot版本我选择的是2.0.6 点击finish后完成项目的创建 2.引入maven依赖 ...
- C# TCP socket发送大数据包时,接收端和发送端数据不一致 服务端接收Receive不完全
简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...
- Query通过Ajax向PHP服务端发送请求并返回JSON数据
Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuer ...
- 【教程】【FLEX】#002 请求服务端数据(UrlLoader)
为什么Flex需要请求服务端读取数据,而不是自己读取? Flex 是一门界面语言,主要是做界面展示的,它能实现很多绚丽的效果,这个是传统Web项目部能比的. 但是它对数据库和文件的读写 没有良好的支持 ...
随机推荐
- 移动端mobiscroll无法滑动、无法划动选值的问题
mobiscroll配置 theme: 'ios',时.滑动取值无效: html的页面内容稍微长过手机屏幕,页面无法完全加载,允许稍微滑动,这时导致点击选择mobiscroll值时无法滑动取值.处理: ...
- iOS - viewDidLoad, viewWillDisappear, viewWillAppear区别及加载顺序
viewWillAppear: Called when the view is about to made visible. Default does nothing视图即将可见时调用.默认情况下不执 ...
- iOS - 去除数组中重复数据的几种方法
第一种:利用NSDictionary的AllKeys(AllValues)方法 代码: NSArray *dataArray = @[@"2018-02-01",@"20 ...
- Java-01-问题解答
问题一:Java类文件是否只能有一个公有类? 1测试代码: //信1603 李敦岳 20163520 //测试Java是否只能有一个公有类 //2017.10.2 public class Test ...
- FFT【快速傅里叶变换】FWT【快速沃尔什变换】
实在是 美丽的数学啊 关于傅里叶变换的博客 讲的很细致 图片非常易于理解http://blog.jobbole.com/70549/ 大概能明白傅里叶变换是干吗的了 但是还是不能明白为什么用傅里叶变换 ...
- 【转】JavaScript prototype
原文地址:http://www.cnblogs.com/dolphinX/p/3286177.html 用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初 ...
- Pandas的loc方法
当你读取到DataFrame的数据时,想去定位某一个数据项,可以使用loc方法进行查找,之后你可以赋值给他. import pandas as pd df = pd.read_csv('file_na ...
- ORACLE中Drop table cascade constraints之后果.
当你要drop一个table时,如果删除table的动作会造成trigger或constraint产生矛盾,系统会出现错误警告的讯息而不会允许执行..一个极简单的例子,例如你有一个员工基本资料表,上面 ...
- Charles 使用(拦截与修改)
一.http 拦截(Breakpoints) 选取需要拦截的地址,鼠标右击选择Breakpoints 二.拦截结果与修改 可以在请求与返回结果中修改内容 1.所拦截的数据包 2.所拦截的请求 3.所拦 ...
- Frogger--poj2253
http://poj.org/problem?id=2253 题意:The frog distance (humans also call it minimax distance) between t ...