flask入门学习

目录

Flask 基础教程

什么是Web框架?

什么是Flask?

Flask 环境配置

一个行之有效的框架搭建:如果app.py运行不成功请认真检查(示例):

Flask 路由(Route)

Flask 入门体验 -- hello world

 Request对象


Flask 基础教程

       Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。

什么是Web框架?

        Web应用程序框架或简单的Web框架表示一组库和模块,它们使Web应用程序开发人员能够编写应用程序,而不必担心如协议,线程管理等低层细节。

        Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

        Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

什么是Flask?

        Flask是一个用Python编写的Web应用程序框架。 它由Armin Ronacher开发,他领导着一个名为Pocco的Python爱好者的国际组织。 Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。 这两个都是Pocco项目。

Flask 环境配置

        安装Flask通常需要Python 2.6或更高版本。 尽管Flask及其依赖与Python 3(Python 3.3以上版本)配合良好,但许多Flask扩展并不能正确支持它。 因此,但是官方建议在Python 3.6+ 以上安装Flask。

        在激活的环境中,这里以Window 10 + Python 3.6环境作为安装演示,使用以下命令安装Flask:

使用以下指令安装:

pip install flask

输入指令查看版本

import flask
print(flask.__version__)
# 2.0.1

一个行之有效的框架搭建:如果app.py运行不成功请认真检查(示例):

Flask 路由(Route)

        现代Web框架使用路由技术来帮助用户记住应用程序URL。 无需从主页导航即可直接访问所需页面。Flask中的route()装饰器用于将URL绑定到函数。

# 导入Flask类库
from flask import Flask
# 创建应用实例
app = Flask(__name__)
# 视图函数(路由)
@app.route("/")
def hello_world():
    return "Hello, World!"
# 启动服务
if __name__ == '__main__':
   app.run(debug = True)

Flask 入门体验 -- hello world

        这样,当请求127.0.0.1的时候,页面就会出现了hello world。光速体验一波flask,但是认真理解一下,首先初始化一个flask对象,@app.route则是引入路由装饰器,然后定义一个方法,这个方法在请求到根节点路由时会自动执行。最后在本地的3000端口启动该服务。

Request对象

        部分属性如下(加粗的较为常见):

属性说明
method请求方法,比如GET、POST
data以字符串的形式存储请求的数据
files上传的文件,类型为MultiDict
args解析URL中提交的参数,类型为MultiDict
form上传的表单数据,类型为MultiDict
values包含args和form的数据,类型为CombineMultiDict
json解析JSON数据,如果没有则返回None
cookies包含客户端传输的所有 cookies ,类型为MultiDict
headers

请求头信息,类似字典,可通过关键词获取对应得信息

        在templates文件夹下创建page2.html文件,代码如下:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>line</title>
    <script type="text/javascript" src="../static/js/jquery-3.6.4.min.js"></script>
    <script type="text/javascript" src="../static/js/echarts.min.js"></script>
</head>

<body>
    <h2>ajax异步请求实现echarts画图</h2>
    <div id="chart" style="width:900; height:500px;"></div>
    <script type='text/javascript'>
        var myChart = echarts.init(document.getElementById('chart'));
        var option;
        option = {
            xAxis: {
                type: 'category',
                data: [],
            },
            yAxis: {
                type: 'value'
            },
            series: [
                {
                    data: [],
                    type: 'line'
                },
                {
                    data: [],
                    type: 'line'
                },
            ]
        };
        // 将ajax封装到函数中执行
        function get_json() {
            $.ajax({
                url: "/json",
                success: function (e) {
                    option.xAxis.data = e.time;
                    option.series[0].data = e.milk;
                    option.series[1].data = e.bread;
                    myChart.setOption(option);
                }
            })
        }
        get_json();
    </script>
</body>

</html>

        flask代码如下:

from flask import Flask, request, redirect, render_template, session, jsonify
import pandas as pd
df = pd.read_excel('./flask/demo1/static/折线图作业数据-商品销量(1).xlsx')
df['时间'] = df['日期'].agg(lambda x:str(x)[5:10])
dict_to_json = {
    'time':df['时间'].tolist(),
    'milk':df['牛奶'].tolist(),
    'bread':df['面包'].tolist(),
}

app = Flask(__name__)

# 定义一个路由展示图形
@app.route('/page2')
def page2():
    return render_template('page2.html')

if __name__ == "__main__":
    # app.run('0.0.0.0',port=80)
    app.run(debug=True)
    print(dict_to_json)

        效果如下:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值