HTTP超文本传输协议
CSS层叠样式
HTML 超文本标记语言
JavaScript脚本语言
WSGI接口:Web Server Gateway Interface. -- 它只要求web开发者实现一个函数,就可以相应http请求。
1
2
3
|
def
application(environ, start_response):
start_response(
'200 OK'
, [(
'Content-Type'
, 'text
/
html)])
return
[b
'<h1>hello, web!</h1>'
]
|
web框架
wsgi框架 -- 其实一个web app,就是写一个wsgi的处理函数,针对每个http请求进行响应。
使用flask编写web app比wsgi接口简单。
写一个app.py,处理3个URL:
GET / :首页,返回home;
GET /signin :登录页,显示登录表单;
POST /signin :处理登录表单,显示登录结果。
flask通过python的装饰器在内部自动地把URL和函数给关联起来:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
from
flask
import
Flask
from
flask
import
request
app
=
Flask(__name__)
@app
.route(
'/'
, methods
=
[
'GET'
,
'POST'
])
def
home():
return
'<h1>Home</h1>'
@app
.route(
'/signin'
, methods
=
[
'GET'
])
def
signin_form():
return
'''<form action="/signin" method="post">
<p><input name="username"></p>
<p><input name="password" type="password"></p>
<p><button type="submit">Sign In</button></p>
</form>'''
@app
.route(
'/signin'
, methods
=
[
'POST'
])
def
signin():
if
request.form[
'username'
]
=
=
'admin'
and
request.form[
'password'
]
=
=
'password'
:
return
'<h3>Hello, admin!</h3>'
return
'<h3>Bad username or password.</h3>'
if
__name__
=
=
'__main__'
app.run()
|
本文转自ting2junshui51CTO博客,原文链接: http://blog.51cto.com/ting2junshui/1753556,如需转载请自行联系原作者