python学习6 web开发
wsgi自带,用语构建简单服务器
from wsgiref.simple_server import make_server
def index(env, res):
res('200 ok', [('Content-Type', 'text/html')])
print(env['PATH_INFO'][1:]) # method = env['REQUEST_METHOD']
body = '<h1>hello %s </h1>' % (env['PATH_INFO'][1:] or 'index')
return [body.encode('utf8')]
# 创建服务器
server = make_server('127.0.0.1', 3000, index)
print('Server start at 3000...')
# 监听请求
server.serve_forever()
aiohttp基于asyncio实现的HTTP框架
import asyncio
from aiohttp import web
@asyncio.coroutine
def index(request):
yield from asyncio.sleep(0.5)
text = '<h1>hello, %s!</h1>' % (request.match_info['name'] or 'index')
return web.Response(body=text.encode('utf8'))
@asyncio.coroutine
def init(loop):
app = web.Application(loop=loop)
app.router.add_route('GET', '/{name}', index)
# 创建服务器
srv = yield from loop.create_server(app.make_handler(), '127.0.0.1', 3000)
print('Server started at http://127.0.0.1:3000...')
return srv
# 获取EventLoop:
loop = asyncio.get_event_loop()
# 执行coroutine
loop.run_until_complete(init(loop))
# 监听请求
loop.run_forever()
jinja2
- 简单的模版初始化和使用
from jinja2 import Environment, FileSystemLoader
def init_jinja2():
path = os.path.abspath('.')
env = Environment(loader=FileSystemLoader(path))
return env
__template__ = init_jinja2()
....
body = __template__.get_template('example.html').render(**kw).encode('utf-8')
....
aiomysql 为asyncio提供异步mmysql IO的驱动
import asyncio
import aiomysql
loop = None
@asyncio.coroutine
def connect():
global loop
# 建立连接
conn = yield from aiomysql.connect(
host= '127.0.0.1',
port= 3306,
user= 'root',
password= 'password',
db= 'awesome',
loop= loop)
# 打开游标
cur = yield from conn.cursor()
# 执行SQL语句
yield from cur.execute('SELECT * FROM users')
print(cur.description)
# 获取结果集
r = yield from cur.fetchall()
print(r)
yield from cur.close()
conn.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(connect())
python学习6 web开发的更多相关文章
- Python学习--20 Web开发
HTTP格式 HTTP协议是基于TCP和IP协议的.HTTP协议是一种文本协议. 每个HTTP请求和响应都遵循相同的格式,一个HTTP包含Header和Body两部分,其中Body是可选的. HTTP ...
- pycharm+python+Django之web开发环境的搭建(windows)
转载:https://blog.csdn.net/yjx2323999451/article/details/53200243/ pycharm+python+Django之web开发环境的搭建(wi ...
- 使用eclipse搭建第一个python+Django的web开发实例
python+Django的web开发实例 一.创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置.也就是通过自动生成代码来建立一个Django项目--一个Django项目的 ...
- 【Python】【Web开发】
# [[Web开发]] ''' 最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件.后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种 ...
- Python学习-day18 Web框架
众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...
- python +Django 搭建web开发环境初步,显示当前时间
1.python 的安装 网上很多关于django跟python 开发的资料,这块我正在实习准备用这个两个合起来搞一个基于web 的东西出来现在开始学习,写点东西记录一下心得. 开发环境是window ...
- [ Python ] Flask 基于 Web开发 大型程序的结构实例解析
作为一个编程入门新手,Flask是我接触到的第一个Web框架.想要深入学习,就从<FlaskWeb开发:基于Python的Web应用开发实战>这本书入手,本书由于是翻译过来的中文版,理解起 ...
- Python学习之web框架 Flask
一.通过PIP 安装Flask 1.1 Windows环境安装pip A.首先PIP进入官网(https://pypi.python.org/pypi/pip)下载gz包 B.对gz压缩包进行解压,解 ...
- 学习 Laravel - Web 开发实战入门笔记(1)
本笔记根据 LearnKu 教程边学边记而成.该教程以搭建出一个类似微博的Web 应用为最终成果,在过程中学习 Laravel 的相关知识. 准备开发环境 原教程使用官方推荐的 Homestead 开 ...
随机推荐
- Android常用组件之ListView
使用ListAdapter是ListView的适配器. 使用ListView.setAdapter()方法来设置ListView的适配器. 简单的使用 adapter = new ArrayAdapt ...
- WCF技术内幕 第二章 - 简单的Message
1.契约 - 接口 (客户端和服务端都要认识Message) namespace WCFService { [ServiceContract(Namespace = "http://wint ...
- nginx tomcat session丢失的问题
nginx反向代理tomcat,出现seesion获取不到的问题. 网上搜索到的解决方案大多是集群tomcat共享session共享的问题,但我这个只有一台tomcat服务器,不涉及到服务器集群问题. ...
- the operation was attempted on an empty geometry Arcgis Project异常
处理gis数据,投影变换时出现异常: the operation was attempted on an empty geometry 解决思路: arcgis的repair geometry方法:删 ...
- 安装centos6.5如何选择安装包
(1)系统安装类型选择及自定义额外包组 进入如图2-28所示界面.上半部分是系统定制的不同的系统安装类型选择项,默认是"Desktop",这里我们选择"Minimal&q ...
- git仓库的初始化
关于git仓库的初始化和git push的操作 git init git remote add origin ssh://myserver.com/home/git/myapp.git git pul ...
- c#过滤html标签
public string HtmlFilter(string html) { //设置要删除的标记 string[] lable = { "font ...
- C#string类型总结
字符串的特性:不可变性,每对字符串做拼接或者重新赋值之类的操作,都会在内存中产生一个新的实例. 所以说,在.Net平台下,如果你对一个字符串进行大量的拼接赋值等操作,会产生大量的垃圾. --- ...
- touch命令
[touch] 改变文件的时间戳 命令格式: touch [OPTION]... FILE... 命令功能: 更新每个文件的访问和修改时间到当前时间或建立一个不存在的文件 命令参数: -a ...
- Asp.Net 数据库连接字符串
<configuration> <connectionStrings> <add name="DefaultConnection" providerN ...