HTTP超文本传输协议
CSS层叠样式
HTML 超文本标记语言
JavaScript脚本语言
WSGI接口:Web Server Gateway Interface. -- 它只要求web开发者实现一个函数,就可以相应http请求。
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和函数给关联起来:
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()