1发展历程编辑
2风格编辑
3设计定位编辑
4CGI编辑
服务器
1
2
3
4
5
6
7
8
9
|
<
Directory
"/var/www/cgi-bin">
Allow Override None
Options ExecCGI
Order allow,deny
Allow from all
</
Directory
>
<
Directory
"/var/www/cgi-bin">
Options All
</
Directory
>
|
程序
1
2
3
4
5
6
7
8
9
10
|
#!/usr/bin/env python
print
(
"Content-type:text/html\r\n\r\n"
)
print
(
"<html>"
)
print
(
"<head>"
)
print
("")
print
(
"</head>"
)
print
(
"<body>"
)
print
(
"<h2>Hello World! This is my first CGI program</h2>"
)
print
(
"</body>"
)
print
(
"</html>"
)
|
1
|
Hello World! This
is
my first CGI program
|
环境变量
变量名
|
描述
|
---|---|
CONTENT_TYPE
|
这个环境变量的值指示所传递来的信息的MIME类型。目前,环境变量CONTENT_TYPE一般都是:application/x-www-form-urlencoded,他表示数据来自于HTML表单。
|
CONTENT_LENGTH
|
如果服务器与CGI程序信息的传递方式是POST,这个环境变量即使从标准输入STDIN中可以读到的有效数据的字节数。这个环境变量在读取所输入的数据时必须使用。
|
HTTP_COOKIE
|
客户机内的 COOKIE 内容。
|
HTTP_USER_AGENT
|
提供包含了版本数或其他专有数据的客户浏览器信息。
|
PATH_INFO
|
这个环境变量的值表示紧接在CGI程序名之后的其他路径信息。它常常作为CGI程序的参数出现。
|
QUERY_STRING
|
如果服务器与CGI程序信息的传递方式是GET,这个环境变量的值即使所传递的信息。这个信息经跟在CGI程序名的后面,两者中间用一个问号'?'分隔。
|
REMOTE_ADDR
|
这个环境变量的值是发送请求的客户机的IP地址,例如上面的192.168.1.67。这个值总是存在的。而且它是Web客户机需要提供给Web服务器的唯一标识,可以在CGI程序中用它来区分不同的Web客户机。
|
REMOTE_HOST
|
这个环境变量的值包含发送CGI请求的客户机的主机名。如果不支持你想查询,则无需定义此环境变量。
|
REQUEST_METHOD
|
提供脚本被调用的方法。对于使用 HTTP/1.0 协议的脚本,仅 GET 和 POST 有意义。
|
SCRIPT_FILENAME
|
CGI脚本的完整路径
|
SCRIPT_NAME
|
CGI脚本的的名称
|
SERVER_NAME
|
这是你的 WEB 服务器的主机名、别名或IP地址。
|
SERVER_SOFTWARE
|
这个环境变量的值包含了调用CGI程序的HTTP服务器的名称和版本号。例如,上面的值为Apache/2.2.14(Unix)
|
1
2
3
4
5
6
|
#!/usr/bin/python
import
os
print
"Content-type:text/html\r\n\r\n"
print
"Environment"
for
param
in
os.environ.keys():
print
"<b>%20s</b>:%s<\br>"
%
(param,os.environ[param])
|
5执行编辑
6基本语法编辑
缩进
1
2
3
4
|
if
age<
21
:
print
(
"你不能买酒。"
)
print
(
"不过你能买口香糖。"
)
print
(
"这句话处於if语句块的外面。"
)
|
控制语句
表达式
函数
对象的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class
Fish:
def
eat(
self
,food):
if
food
is
not
None
:
self
.hungry
=
False
class
User:
def__init__(myself,name):
myself.name
=
name
#构造Fish的实例:
f
=
Fish()
#以下两种调用形式是等价的:
Fish.eat(f,
"earthworm"
)
f.eat(
"earthworm"
)
u
=
User(
'username'
)
print
(u.name)
|
类型
类型
|
描述
|
例子
| 备注 |
---|---|---|---|
一个由字符组成的不可更改的有串行。
|
'Wikipedia'
"Wikipedia"
"""Spanning
multiple
lines"""
| 在Python 3.x里,字符串由Unicode字符组成 | |
bytes
|
一个由字节组成的不可更改的有串行。
|
b'Some ASCII'
b"Some ASCII"
| |
list
|
可以包含多种类型的可改变的有串行
|
[4.0, 'string', True]
| |
tuple
|
可以包含多种类型的不可改变的有串行
|
(4.0, 'string', True)
| |
set, frozenset
|
与数学中集合的概念类似。无序的、每个元素唯一。
|
{4.0, 'string', True}
frozenset([4.0, 'string', True])
| |
dict
|
一个可改变的由键值对组成的无串行。
|
{'key1': 1.0, 3: False}
| |
int
|
精度不限的整数
|
42
| |
float
|
浮点数。精度与系统相关。
|
3.1415927
| |
complex
|
复数
|
3+2.7j
| |
bool
|
逻辑值。只有两个值:真、假
|
True
False
|
数学运算
7特点编辑
优点
缺点
8应用编辑
1
2
3
4
|
import
urllib2
#调用urllib2
html
=
urllib2.urlopen(url).read()
#html随意取名 等号后面的动作是打开源代码页面,并阅读
print
html
#打印
|