python第七天之数据分析

数据可视化

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

一、flask框架

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

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

1、开启debug模式

优点:

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

方法:
在这里插入图片描述
在这里插入图片描述

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/<name>')
def welcome(name):
    return "你好,%s"%name

结果如下:
在这里插入图片描述

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

结果如下:
在这里插入图片描述

3、页面渲染

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

案例一:普通访问

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

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

在这里插入图片描述

案例二:访问变量
#引用定义变量
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如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>欢迎你</title>
</head>
<br>
    欢迎光临,今天是{{ var }}。<br/>
    今天值班的有:</br>
    {% for data in list %}   <!--用大括号和百分号括起来的是控制结构,还有If -->
        {{ data }}
    {% endfor %}<br/><br/>

     任务:<br/>              <!-- 了解一下如何在页面打印表格,以及如何选择迭代-->
     <table border="1">
         {% for key,value in task.items() %}     <!--[(key,value),(),()]-->
            <tr>
                <td>{{ key }}</td>
                <td>{{ value }}</td>
            </tr>
         {% endfor %}
     </table>
</body>

结果如下:
在这里插入图片描述

案例三:表单提交

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

<body>
   # <form action="http://localhost:5000/result" method="post">
   <form action="{{ url_for('result') }}" method="post">   #{{ url_for('result') }}动态生成路由位置
        <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>

result.html

<body>
    <table border="1">
         {% for key,value in result.items() %}     <!--[(key,value),(),()]-->
            <tr>
                <td>{{ key }}</td>
                <td>{{ value }}</td>
            </tr>
         {% endfor %}
     </table>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值