python web开发

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'<h2>hello, web!</h2>']


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 '<h2>Home</h2>'
    
@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 '<h4>Hello, admin!</h4>'
    return '<h4>Bad username or password.</h4>'
    
    
    
    
if __name__=='__main__'
    app.run()