1.认识flask
当创建一个flask项目时,有如下四个文件:
static:可以存放CSS,JS
templates:HTML网页模板
venv
app.py
app.py初始化原始代码如下:
from flask import Flask app=Flask(__name__) #路由解析,通过用户访问的路径,匹配相应的函数 @app.route('/') def hello_world(): return 'Hello World!' if __name__=='__main__': app.run()
运行后可以在浏览器中http://127.0.0.1:5000/访问
通过访问路径,获取用户的字符串参数
@app.route("/user/<name>") def welcome(name): return "你好,%s"%name
通过访问路径,获取用户名的整形参数
@app.route("/user/<int:id>") def welcome2(id): return "你好,%d 号的会员"%id
通过模板方式访问
from flask import Flask,render_template @app.route("/") def index2(): return render_template("index.html")#此处的index.html需要在templates文件夹中写好
向页面传递一个变量
import datetime @app.route("/") def index2(): time=datetime.date.today() return render_template("index.html",var=time)
此时网页中要使用这个变量var可以这样写:{{ var }}就可以获取到服务器传递过来的变量了
向页面传递一个变量
import datetime @app.route("/") def index2(): time=datetime.date.today() data=["张三","李四","王五"] return render_template("index.html",var=time,list=data)
此时网页中要使用这个列表变量,HTML中代码如下写:
{% for data in list %} <li>{{ data }}</li> {% endfor %}
传输的是字典类型的变量该如何打印
@app.route("/") def index2(): time=datetime.date.today() data=["张三","李四","王五"] task={"任务":"打扫","时间":"三小时"} return render_template("index.html",var=time,list=data,task=task)
此时网页中要使用这个列表变量,HTML中代码如下写:
{% for key,value in task.items() %} <li>{{ key }}:{{ value }}</li> {% endfor %}
表单提交
from flask import Flask,render_template,request @app.route("/test/register") def register(): return render_template("test/register.html")#这里也没里面写表单提交
接收表单提交的路由,如果是post提交,必须指定methods为post
@app.route("/result",methods=['POST','GET']) def result(): if request.method=="POST": result=request.form return render_template("test/result.html",result=result)
html表单提交,自动获取路径
<form action="{{ url_for('result') }}" method="post"> </form>
阿里开源图标
iconfont.cn
一些很好用的图片里面都有
ECharts 很好用的一些数据可视化模式
不同评分分别有多少数量
select score,count(score) from movie250 group by score
后端通过flask在数据库中查询所要数据传送到前端
@app.route('/score') def score(): score=[]#评分 num=[]#每个评分所统计出的电影数量 con=sqlite3.connect("movie.db") cur=con.cursor() sql="select score,count(score) from movie250 group by score" date=cur.execute(sql) for item in data: score.append(item[0])#数字类型 score.append(str(item[0]))#字符串类型 num.append(item[1]) cur.close() con.close() return render_template("score.html",score=score,num=num)
前端html中的JavaScript直接使用,纯数字类型:
{{score}}
{{num}},
字符串类型:
{{score|tojson}}