在处理一个页面请求时咱们通常会须要用到一下信息:javascript
如何获取请求头的信息css
import os # 这是返回给客户端的请求头 print("Content-type: text/html\n\n") print(os.environ)
在输出界面咱们就能够看到咱们所提交过去的各类信息.html
GET/POST的请求参数, GET的请求参数咱们能够经过os.environ里的QUERY_STRING看到. 而事实上咱们还能够经过CGI模块来获取java
import cgi # 建立 FieldStorage 的实例化 form = cgi.FieldStorage() username = form.getvalue('username', default=None) password = form.getvalue('password', default=None) print("Content-type: text/html\n\n") print("Your username is %s, password is %s"% (username, password))
不管是经过GET仍是POST提交的参数, 均可以经过getvalue获取.python
cgi是经过stdin, stdout来传递数据的.要让可执行文件的输出不止于helloworld, 那么就须要把特定的信息输出到stdout从而输出至客户端. 对于REST风格的API而言, 能够使用json.dumps来生成返回数据. 而若是是做为网页形式, 须要返回整个html, 那么咱们将须要输出html的dom、css、javascript, 要咱们一行一行把这些东西给输出到stdout是很是麻烦的. 这时咱们就能够经过模板语言来构建html.json
由于CGI会直接启动一个进程来执行脚本, 那么咱们就须要注意一个安全性的问题. 执行脚本的用户应该尽可能少拥有无关的权限. 以防被恶意用户利用.安全