python学习笔记-基于flask的web服务提供
2017-01-17 14:19
771 查看
背景:
在python下提供web服务。根据请求的url中的关键字和参数进行具体处理。流程:
客户端->web 服务器->WSGI->application客户端发送 HTTP 请求,web 服务器在一个地址的端口上等待接收,一旦收到,会将请求通过 WSGI 交给 application 处理,application 就是 flask 框架编写的应用,application 对消息处理后,也通过 WSGI 返回 HTTP 响应给 web 服务器,由服务器发送给客户端。
所有 Flask 程序都必须创建一个程序实例,实例是 Flask 类的对象,创建实例方法如下:
from flask import Flask app = Flask(__name__)
web 服务器
常见的有 uWSGI、Nginx、gunicorn 等
flask 集成了一个开发用的web服务器,同一时间只能处理一个请求。使用 flask 集成的服务器:
if __name__ == '__main__': app.run()
代码:
# -*- coding: utf-8 -*-
from flask import Flask
from flask import request
from flask import make_response
from flask import redirect#重定向
from flask import abort #异常抛出
app = Flask(__name__)
# 对 url 中,/user/ 后面的内容进行匹配、截取,赋值给变量 name,默认匹配字符串,可以指定类型。例如,/user/<int:id> 只匹配 id 为整数的 URL
@app.route('/user/<name>')
def hello_world(name):#变量 name 作为参数传递给函数 user[关键字参数]
#可以根据不同的name关键字做不同的处理逻辑
if name == "print":
p1 = request.args.get('p1', 1, type=int)#从 url 获取 键为 p1 的 值转换为整形,如果没有 或 转换失败,默认为 1
p2 = request.args.get('p2', 1, type=str)
return "OK" + str(p1) + " " + str(p2)
elif name == "return":
print(request.args)
response = make_response('<h1>This document carries a cookie!</h1>')#采用Response 对象返回响应
# response.headers()
response.set_cookie('answer', '42') # 设置 cookie
return response
# return 'Hello World!' + "\t" + name
elif name == "redir":
return redirect("http://baidu.com")#对该url进行重定向
elif name == "notfind":
print("not find")
abort(404)#注意,abort 会直接跳出调用它的函数,抛出异常,把控制权交给 Web 服务器
else:
return "None"
if __name__ == '__main__': app.run()#它告诉Flask以开发模式运行你的网站以便于测试
相关文章推荐
- Python flask 基于 Flask 提供 RESTful Web 服务
- 基于python的web框架——Flask 学习笔记
- Python Web接口开发学习笔记(基于Django框架)(一)
- Python FLask Web 学习笔记:jinjia2的使用方法1
- Python学习笔记-实现探测Web服务质量
- 基于Python的Flask Web 开发 笔记 (1)
- Python之学习笔记(web服务)
- Python学习笔记-实现探测Web服务质量
- Python学习笔记:Flask-Migrate基于model做upgrade的基本原理
- 【小白笔记】python web学习之路-Flask(1)
- .net调用java webservice基于JBOSS服务器 学习笔记(一)
- 电信增值业务学习笔记11——基于Parlay的增值业务提供技术
- 转:CXF学习笔记二:如何在Tomcat中创建、发布和访问基于CXF的服务
- C#webservice服务学习笔记
- 【电信增值业务学习笔记】11 基于Parlay的增值业务提供技术
- pypy python jit 测试 基于twisted web 服务
- 转:CXF学习笔记一:如何创建、发布和访问基于CXF的服务
- python网络编程学习笔记(10):webpy框架
- web服务协同学习笔记(1)
- 基于python的正则表达式学习笔记