python第七天之数据分析

数据可视化

收集到的数据可以在不同平台展示,也可以展示不同的数据效果。

一、flask框架

web框架。核心为Werkzeng(路由分发)和jinja2(页面渲染)。
创建一个flask的框架的java项目,目录中

static 用来存放css,js等
templates 用来存放网页

1、开启debug模式

优点:

  • 可以只刷新页面就看到修改的页面(无需重启项目)
  • 报错会有错误提示

方法:
在这里插入图片描述
python第七天之数据分析_第1张图片

2、路由设置

创建flask项目

案例一:普通访问
from flask import Flask
app = Flask(__name__)

#路由解析,通过用户访问的路径,匹配相应的函数
@app.route('/a')
def hello_world():             # put application's code here
    return 'Hello aaa!'
    
if __name__ == '__main__':
    app.run()

访问网址:http://127.0.0.1:5000/a
结果:Hello aaa!

案例二:字符串变量访问
#通过访问路径,获取用户的字符串参数
@app.route('/user/')
def welcome(name):
    return "你好,%s"%name

结果如下:
python第七天之数据分析_第2张图片

案例三:整型变量访问
#通过访问路径,获取用户的整型参数    此外还有float参数
@app.route('/user/')
def welcome2(id):
    return "你好,%d号的会员"%id
#路由路径不能重复,用户通过唯一路径访问特定的函数

结果如下:
python第七天之数据分析_第3张图片

3、页面渲染

显然。我们想要的不仅仅是文字内容,我们想要的是一个页面。
我们就需要用到jinja2.

案例一:普通访问

首先,我们要在templates下创建一个index.html文件,写欢迎光临

#返回用户渲染后的网页文件
@app.route("/")
def index2():
    return render_template("index.html")

python第七天之数据分析_第4张图片

案例二:访问变量
#引用定义变量
from flask import Flask,render_template
import datetime

app = Flask(__name__)

#向页面传递一个变量
@app.route("/")
def index2():
    time = datetime.date.today()           #普通变量
    name = ["zhang","wang","li"]           #列表类型
    task = {"任务":"到扫卫生","时间":"3h"}   #字典类型
    return render_template("index.html",var = time,list = name,task = task)

#启动
if __name__ == '__main__':
    app.run()

index.html如下




    
    欢迎你


欢迎光临,今天是{{ var }}。
今天值班的有:
{% for data in list %} {{ data }} {% endfor %}

任务:
{% for key,value in task.items() %} {% endfor %}
{{ key }} {{ value }}

结果如下:
python第七天之数据分析_第5张图片

案例三:表单提交

register.html页面表单填写,跳转result.html页面显示填写内容
在templates下创建文件夹test,创建两个html文件,register.html,result.html

#引用定义变量
from flask import Flask,render_template,request
import datetime

app = Flask(__name__)

#表单提交
@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' :
        #post方法,想要拿到页面内容(表单)用request.form
        result = request.form
        return render_template("test/result.html",result = result)

#启动
if __name__ == '__main__':
    app.run()

register.html


   # 
#{{ url_for('result') }}动态生成路由位置

姓名:

年龄:

性别:

地址:

result.html


    
         {% for key,value in result.items() %}     
         {% endfor %}
     
{{ key }} {{ value }}

你可能感兴趣的:(python,flask,python,后端)