本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 可非商业性使用-相同方式共享的形式转载、引用,但需署名作者且注明文章出处。 知识共享许可协议

Web框架

WSGI是重要的Web开发库,使开发者不再被HTTP协议困扰,但仅仅有WSGI还不够,在实际开发中,我们希望有一套Web框架,能为开发者做更多的事情。开发者想要框架能做更多事情,想要框架能够处理不同URL的访问,如对同一ip不同目录的访问;想要框架能够处理不同形式的访问,如GET, POST等。
这就说到了用Python进行Web开发的利器:Web框架。Web框架提供了Web开发更高层次的抽象,开发者可以把更少的精力花在各种响应的区分上,而把主要的精力用在响应的内容上。以主流的Python-Web框架Flask为例,开发者可以为每种URL,每个访问方式定义单独的函数。下面的代码就是一个简单的Flask框架下的Web程序。

作者:shawn233
链接:https://www.jianshu.com/p/226500950ec9
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

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():
    # 需要从request对象读取表单内容:
    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()