免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2109 | 回复: 0
打印 上一主题 下一主题

Python php 编写 web 服务程序对比 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 02:25 |只看该作者 |倒序浏览
HTTP 协议:
  请求: 请求行 其它头部
  响应: 响应行 其它头部 响应体



python CGI
    每一个CGI脚本都是独立的
取得HTTP请求头部: os.environ <dict> 以 HTTP_ 开头的变量
取得HTTP表单: cgi.FieldStorage() <dict>
设置HTTP响应头部: 脚本输出 格式 K: V\r\n...  \r\n
设置HTTP响应体: 脚本输出
cookie 的存取设置与其它头部相同
os.environ['HTTP_COOKIE']
import Cookie
ck = Cookie.SimpleCookie()
ck['key1'] = 'value1'
print ck.putput()
session 无, 根据 cookie 脚本中处理


PHP
取得HTTP请求头部:

取得HTTP表单: $_GET $_POST $_REQUEST
设置HTTP响应头部:

HTTP响应体

取得、设置 cookie: $_COOKIES?
取得、设置 session
页面头部 start_session()  访问 $_SESSION

Python Django
  Django 每个请求对应一个Handler 函数, 
  输入参数有一个 HttpRequest 对象, 返回一个 HttpResponse 实例, django 会把它转换成合适的 HTTP response
取得HTTP请求行: request.method ('GET','POST', ..) request.path (/test)
取得HTTP请求头部: request.META <dict> 以 HTTP_ 开头的变量
取得HTTP表单: request.GET request.POST request.REQUEST request.FILES

创建 HttpResponse 及设置类型: 在 HttpResponse 构造参数指定mimetype
 from django.http import HttpResponse
 response = HttpResponse(content='', mimetype=None, status=None, content_type=None)

设置HTTP响应头部: 把 HttpResponse 对象当成字典使用, 增加值即可, items()方法可以查看
 response['abc'] = '1234'
HTTP响应体: 使用 HttpResponse 对象 write 方法
 response.write('<html>....')

读取 cookie: 每个 request 有 COOKIES 对象, 字典类型
 if 'abc' in request.COOKIES: print request.COOKIES['abc']
写入 cookie: 使用 HttpResponse 对象的 set_cookie 方法
 response.set_cookie('KEY', 'Value')

取得、设置 session: 
 启用 SessionMiddleware, 安装 sessions 应用, syncdb 表,
 之后每个 request 有一个 session, 字典类型
查看 session 详细信息:
 from django.contrib.sessions.models import Session
 for sess1 in Session.objects.all():
   print sess1.session_key, sess1.session_data, sess1.expire_date, sess1.get_decoded()

用户认证、登陆: 
 需要 session 功能, 启用 AuthenticationMiddleware, 安装 auth 应用, syncdb 表,
 之后每个 request 有一个 user 对象
 from django.contrib import auth
 request.user.is_authenticated()  # 判断是否登陆
 user = auth.authenticate(username='XX',password='YY') #返回None或User
 auth.login(request, user) #登陆
 auth.logout(request) #退出登陆

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP