跬步 On Coding

Jinja2 模版引擎

参考

API

from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader(templ_dir))

Python Web farmwork

简介

上一节写了WSGI与Cookie相关的内容,为了方便的实现Web App,需要编写一个简单的Web框架,需要实现以下功能:

  1. 处理request;
  2. 生成response header;
  3. 根据request URI找到对应处理的函数,即URL路由;
  4. 定制模版引擎;
  5. 拦截器,在处理函数产生响应前,做预处理,相当于WSGI中middlware的概念,比如处理Cookie等。

HTTP Cookie

什么是Cookie

Cookie用于存储http请求中的用户认证信息,用户在通过登录认证后,服务器在response header中设置Cookie,用户浏览器自动带Cookie访问该网站。

response header 中添加 Set-Cookie信息,cookie是一组key,value值。

Set-Cookie: <name>=<value>[; <name>=<value>]...
            [; expires=<date>][; domain=<domain_name>]
            [; path=<some_path>][; secure][; httponly]

WSGI 理解

参考

WSGI 简介

WSGI是Python webserver与Web App之间的协议。这个协议定义了Web server和App的行为,是的server与app分离,简化了开发。

WSGI server,Gunicorn(python实现),uWSGI(C实现),这些服务器程序都实现了标准的WSGI接口,任意web app都可以使用不同的server。

urllib2 使用

基础用法

urllib2是用来发送http请求,获取响应数据的库。基础用法:

import urllib2

# urlopen返回类文件对象,可选参数data与请求头header
response = urllib2.urlopen('http://bozpy.sinaapp.com', [data, [header]])
body = response.read() # 类文件对象有与文件对象类似的方法,read,readline等
heade = response.info() # 获取响应的头,字典
url = response.geturl() # 获取响应的真实url,如果有重定向,url会改变