分享

Python+Flask快速入门web开发

 老码识途 2023-10-10 发布于广东

概述

当你爬取了很多数据,却无法展示,当你生成了漂亮图表,却不知如何给客户看,这是因为你缺少一个web项目。本文以一个简单的小例子,简述如何通过flask创建一个web项目,并成功运行,仅供学习分享使用,如有不足之处,还请指正。

什么是Flask ?

Flask是一个使用Pyhton编写的轻量级Web应用框架,其WSGI【Python Web Server Gateway Interface】工具包采用Werkzeug,模板引擎则使用Jinja2,是目前十分流行的web框架。

Flask安装

采用pip install flask命令进行安装,如下所示:

注意:因本机已安装过,所以不需要重新安装,如果第一次安装,则需要联网进行下载软件包进行安装。

新建项目

创建建Flask项目:File-->New Project--创建Flask项目,如下所示:

Flask项目初始化目录结构,如下所示:

启动flask项目

app.py是flask项目的入口,运行app即可启动,如下所示:

 注意:flask默认端口为5000,在浏览器中访问网址:http://127.0.0.1:5000即可打开,如下所示:

以上提示,表示flask项目启动成功。

创建路由

新创建的flask项目,默认只有一个根路由,即Hello Word,那么如何新增一个访问路由呢?

新增一个Python函数,然后通过@app.route('/flask') 进行声明,则表示一个flask路由。

 重启flask服务,然后在浏览器里面即可访问,如下所示:

传递参数

在web项目中,经常需要从前端获取参数,在flask项目,如果需要获取参数,需要引入request对象,如下所示:

1 from flask import request

新增路由,然后通过request对象,获取参数,如下所示:

 然后,重启服务,在浏览器中访问,如下所示:

创建页面

以上路由都是返回一个字符串,如果是复杂的系统,肯定是无法满足需求的,那么如何返回一个Html页面呢?flask项目的页面,是以模板的形式,存放于template目录下。在flask项目中,如果要使用模板,首先是要导入包,如下所示:

1 from flask import render_template

新增index.html页面,如下所示:

 创建页面后,新增路由,返回模板即可,如下所示:

重启服务,然后在浏览器中访问,如下所示:

 以上就是一个Flask项目的完整示例,下面将进一步介绍如何通过jQuery实现Flask项目的异步刷新,以达到局部更新的目的。

--------------------------------------上下分隔线---------------------------------------------

什么是Ajax?

Ajax是Asynchronous JavaScript and Xml的简称,通过Ajax向服务器发送请求,接收服务器返回的json数据,然后使用javascript修改页面来实现页面数据的局部刷新。AJAX 是与服务器交换数据的艺术,它在不重载全部页面的情况下,实现了对部分网页的更新。使用jQuery框架可方便的编写ajax代码,需要jQuery.js文件。

jQuery下载

jQuery可以通过官网进行下载,在开发过程中,为便于调试,可下载开发版。如下所示:

创建模板

在下载完jQuery后,将其拷贝到static/js目录下,然后创建模板文件ajax.html,如下所示:

 ajax.html文件中调用jQuery创建ajax,然后更新页面,如下所示:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>异步刷新页面</title>    <script src="../static/js/jquery-3.6.0.js"></script>    <script type="text/javascript">        $(document).ready(function () {            $("#btn_ajax").click(function () {                $.ajax({                    url: "/ajax_data",                    type: "post",                    data: {"name": "李四", "score": 99},                    success: function (data) {                        $("h1").html("中国加油>>" + data);                    },                    error: function (data) {                        alert("发送ajax失败!");                    }
}) }); });</script></head><body><h1>局部刷新</h1><input id="btn_ajax" type="button" value="点我有惊喜"/></body></html>

其中ajax_data为指定路由,主要用于获取数据,如下所示:

 注意:一般默认情况下,flask路由只支持get方式,为支持post方式,需要显示声明。

启动服务

启动flask服务,在浏览器中进行访问,初始化加载时如下所示:

 点击按钮后,通过ajax调用后端服务,成功后,刷新页面,实现局部刷新功能,如下所示:

 以上就是Python利用flask及jQuery实现异步刷新的方法,旨在抛砖引玉,分析分享。

--------------------------------------上下分隔线---------------------------------------------

字符串格式化

字符串的格式化方法分为两种,分别为占位符(%)和format方式。占位符方式在Python2.x中用的比较广泛,随着Python3.x的使用越来越广,format方式使用的更加广泛。

占位符(%)方式

name = '小王'age = 20score = 100country = '中国'print("我的名字叫%s我的年龄是%d我的分数是%d我的祖国是%s" % (name, age, score, country))

占位符还可以通过字典的方式进行匹配,如下所示:

print("我的名字叫%(name)s我的年龄是%(age)d我的分数是%(score)d我的祖国是%(country)s" % ({"name": name, "age": age, "score": score, "country": country}))

输出结果如下所示:

format方式

name = '小王'age = 20score = 100country = '中国'print("我的名字叫{}我的年龄是{}我的分数是{}我的祖国是{}".format(name, age, score, country))  # 默认1对1,多1不可,缺1不可print("我的名字叫{0}我的年龄是{1}我的分数是{2}我的祖国是{3}".format(name, age, score, country))  # 通过位置找出替换目标及插入的参数print("我的名字叫{name}我的年龄是{age}我的分数是{score}我的祖国是{country}".format(name=name, age=age, score=score,                                                               country=country))  # {}通过关键字找出替换目标及插入的参数

以上几种format方式,输出结果一致,如下所示:

插值法 

在Python 3.6以后,还提供了插值法,实现格式化,如下所示:

name = '小王'age = 20score = 100country = '中国'print(f"我的名字叫{name}我的年龄是{age}我的分数是{score}我的祖国是{country}")

输出结果也是一样的,如下所示:

以上就是Python+Flask快速入门Web开发的主要内容,旨在抛砖引玉,共同进步。

学习Python,从关注“老码识途”开始!!!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多