6-2,数据可视化-flask初识
新建flask project ,开启debug模式
from flask import Flask
app = Flask(__name__)
def hello():
return '你好!'
if __name__ == '__main__':
app.run(debug=True)
勾选之后,点击OK,新建的运行文件删除掉,每次运行的时候使用右上角的调试按钮,之后debug模式即可开启。
通过访问路径获取用户的字符串参数,若:
#通过访问路径获取用户的字符串参数
@app.route('/user/<name>')
def welcome(name):
return '你好,%s'%name
则
通过访问路径获取用户的整型参数,若
#通过访问路径获取用户的整型参数 此外还有float类型
@app.route('/user/<int:id>')
def welcome2(id):
return '你好,%d 号的会员'%id
则
注:路由的路径不能重复,用户通过唯一路径访问特定函数
返回给用户渲染后的网页文件,若:
from flask import Flask,render_template#渲染模板,将html文件展示出来
#返回给用户渲染后的网页文件
@app.route('/')
def index():
return render_template('index.html')
index.html文件为
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页</title>
</head>
<body>
欢迎光临
</body>
</html>
则
向页面传递一个变量,若
import datetime
#向页面传递一个变量
@app.route('/')
def index1():
time = datetime.date.today() #普通类型
name = ['小张','小王','小李'] # 列表类型
task = {'任务':'打扫卫生','时间':'3小时'} # 字典类型
return render_template('index.html',var = time,list = name,task = task)
html文件为
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页</title>
</head>
<body>
今天的时间是:{{ var }},欢迎光临 <br/>
今天值班的有:<br/>
{% for data in list %} <!--用大括号和百分号括起来的是控制结构,还有if-->
<li>{{ data }}</li>
{% endfor %}
任务:<br/> <!--了解一下如何在页面打印表格,以及如何迭代-->
<table border="1">
{% for key,value in task.items() %} <!--当使用items时,字典就变成[(key,value),(key,value),(key,value)]-->
<tr>
<td>{{key}}</td>
<td>{{value}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
输出
表单提交和接收表单,若
#表单提交
from flask import Flask,render_template,request
@app.route('/test/register')
def register():
return render_template('test/register.html')
#接收表单的路由需要指定method为POST
@app.route('/result',methods=['POST','GET'])
def result():
if request.method == 'POST':
result = request.form
return render_template('test/result.html',result=result)
register.html文件为
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页</title>
</head>
<body>
<!--form action="http://localhost:5000/result" method="post"-->
<!--此处网址不应该写死,应动态获取网址,即动态找到路由路径-->
<form action="{{ url_for('result') }}" method="post">
<p>姓名:<input type="text" name="姓名"></p>
<p>年龄:<input type="text" name="年龄"></p>
<p>性别:<input type="text" name="性别"></p>
<p>地址:<input type="text" name="地址"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
result.html文件为
<html lang="en">
<head>
<meta charset="UTF-8">
<title>提交结果</title>
</head>
<body>
<table border="1">
{% for key,value in result.items() %} <!--当使用items时,字典就变成[(key,value),(key,value),(key,value)]-->
<tr>
<th>{{key}}</th>
<td>{{value}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
输出
提交之后