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}}

 

posted @ 2021-03-09 10:58  种太阳  阅读(4)  评论(0编辑  收藏  举报