Flask是较为热门的用python编写的Web应用框架,它能够根据路由自动将请求分配给对应的函数,使得程序员能够专注于功能,而不是繁琐的底层协议
下面的代码创建了一个Flask应用,并返回一个欢迎页面
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def main_web():
return 'hello world'
if __name__ == '__main__':
app.run(host="127.0.0.1",port=8080)
Flask会自动将不同的路由解析到对应的函数,你需要使用route()装饰器来绑定路由和函数
下面的代码将根目录绑定至 main() 函数
@app.route('/')
def main():
return 'hello world'
只要稍微修改以下装饰器,就可以把 “/main” 路由绑定至 main() 函数
@app.route('/main')
def main():
return 'hello world'
路由中可以加入变量,以便于将具体路由以参数形式传递到绑定的函数中
例如下面的代码,如果访问 “localhost:8080/hello”,则变量 name == “hello”
@app.route('/<name>')
def main1(name):
return name
你也可以指定参数类型,例如整型
@app.route('/<int:id>')
def main1(id):
return str(id)
如果路由为 “localhost:8080/abc”,则Flask会跳过该函数,寻找下一个匹配的路由
使用字典可以方便地传入多个参数
@app.route('/<name>/<int:id>')
def main(**dic):
return '''
name= %s<br/>
id = %d
''' % (dic['name'], dic['id'])
在项目根目录下创建 template 文件夹,并添加一个 index.html文件
在代码中使用模板
@app.route("/")
def index():
return render_template("index.html")
在模板中使用大括号可以标注一个变量,并在函数中传入该变量
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Template</title>
</head>
<body>
{{ value }}
</body>
</html>
@app.route("/")
def index():
return render_template("index.html",value="dearxuan")
html中的变量会被直接替换为对应的字符串,且会被自动转义