第8单元8.2网络应用程序开发(课件)-《程序设计基础-Python》(高教版)同步精品课堂

2026-01-13
| 38页
| 68人阅读
| 0人下载
精品

内容正文:

8.2网络应用程序开发 程序设计基础Python 同步精品课堂 高教版 掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。 教学目标 一 1.理解Flask框架的基本概念, 2.掌握Flask程序的运行方式,知晓调试模式的作用,理解路由的定义及动态参数传递的原理。 教学重难点 二 1. 重点:第一个Flask程序的编写与运行,Flask路由的基本使用 2. 难点:动态参数路由的参数传递原理, url_for() 与 redirect() 的协同使用。 同学们,咱们先想想生活里的场景:汽车厂造汽车时, 导入新课 三 这些页面能用Python实现吗?怎么实现?” 新知讲授 四 一、第一个Flask程序 01 import flask as fla 02 app = fla.Flask(__name__) 03 @app.route("/") 04 def index(): 上述程序保存为c:\app.py,在命令行运行python c:\app.py。 浏览器输入"http://127.0.0.1:5000/" 05 return "这是第一张网页" 06 if __name__ == "__main__": 07 app.run() 新知讲授 四 一、第一个Flask程序 01 import flask as fla 02 app = fla.Flask(__name__) 03 @app.route("/") 04 def index(): 05 return "这是第一张网页" 06 if __name__ == "__main__": 07 app.run() 01行代码表示导入了flask类并定义别名为fla。 02行代码表示创建了Flask类的实例,Flask构造函数使用当前模块__name__的名称作为参数。并将该实例赋值给app变量,通过app变量可以操作Flask类的方法及属性,app是Flask对象或者Flask实例。 03行:Flask类的route()函数是一个装饰器,它告诉应用程序哪个URL应该调用相关的函数。代码使用route()装饰器告诉Flask当客户端请求/时调用index函数。 新知讲授 四 一、第一个Flask程序 01 import flask as fla 02 app = fla.Flask(__name__) 03 @app.route("/") 04 def index(): 05 return "这是第一张网页" 06 if __name__ == "__main__": 07 app.run() 03行:Flask类的route()函数是一个装饰器,它告诉应用程序哪个URL应该调用相关的函数。代码使用route()装饰器告诉Flask当客户端请求/时调用index函数。 07行代码表示用run方法让应用运行在本地服务器上。其中06行的if __name__=="__main__":确保服务器只会在该脚本被python解释器直接执行的时候才会运行,而不是作为模块导入的时候执行。 关闭服务器,按ctrl+c快捷键。 新知讲授 四 一、第一个Flask程序 01 import flask as fla 02 app = fla.Flask(__name__) 03 @app.route("/") 04 def index(): 05 return "这是第一张网页" 06 if __name__ == "__main__": 07 app.run() 07行代码表示用run方法让应用运行在本地服务器上。其中06行的if __name__=="__main__":确保服务器只会在该脚本被python解释器直接执行的时候才会运行,而不是作为模块导入的时候执行。 关闭服务器,按ctrl+c快捷键。 新知讲授 四 二、Pycharm环境中运行介绍 ①在pycharm专业中中,点“文件”菜单——“新建工程”,选择Flask,Location中输入项目名称,最后点击Create。 ②安装第三方库Flask模块。 ③编写代码、调试。 如果是pycharm社区版,可以先创建纯python项目,然后手工输入flask程序。 新知讲授 四 二、Pycharm环境中运行介绍--运行展示 虚拟环境中要想正确使用Flask,一定要确保虚拟环境中安装了Flask。另外全局环境的Flask最好卸载掉。 新知讲授 四 三、开启调试模式 run(host,port,debug,options) run()方法主要功能是启动Flask程序。host参数表示要监听的主机名,默认为127.0.0.1(localhost)。设置为“0.0.0.0”使服务器在任意本地地址监听。port表示监听的端口号,默认为5000。debug默认为False。如果设置为True,则开启调试模式。options要转发到底层的Werkzeug服务器。 新知讲授 四 三、开启调试模式--Pycharm中的调式模式 我们可以用app.run(debug=True)开启调试模式。也可以app.debug=True;app.run()方法开启调试,两者的功能是一样的。该方法必须在命令行运行程序。 新知讲授 四 四、Flask路由 @Flask对象名.route(URL字符串) def 自定义函数(): 代码块 该方法称为注册静态参数路由 自定义函数称之为视图函数,而route()称之为装饰器。 URL字符串与自定义函数建立映射关系。当用户在浏览器访问“http://127.0.0.1:5000/URL字符串”,浏览器页面 出现的是自定义函数的执行结果 新知讲授 四 五、Flask路由--注册静态参数路由举例 【例】将“/hello”URL规则绑定到hello_world()视图函数,hello_world()函数返回“hello world”字符串。可用如下代码实现。 01 import flask as fla 02 app = fla.Flask(__name__) 03 @app.route("/hello") 04 def hello_world(): 05 return "<h1>hello world </h1>" 06 if __name__ == "__main__": 07 app.run() 新知讲授 四 五、Flask路由--注册静态参数路由举例-效果展示 【例】将“/hello”URL规则绑定到hello_world()视图函数,hello_world()函数返回“hello world”字符串。可用如下代码实现。 新知讲授 四 六、Flask路由 @Flask对象名.route(URL字符串1) @Flask对象名.route(URL字符串2) def 自定义函数(): 代码块 上述代码可以将该视图函数绑定两个url,即把URL字符串1和URL字符串2都绑定到自定义函数上自定义函数称之为视图函数,而route()称之为装饰器。 用户在浏览器访问“http://127.0.0.1:5000/URL字符串1”或者“http://127.0.0.1:5000/URL字符串2”都会触发该自定义函数。 新知讲授 四 六、Flask路由--效果展示 /hello1 /hello2 计算机专业的大家们:hello 新知讲授 四 六、Flask路由 @Flask对象名.route(URL字符串/<变量名>) def 自定义函数(变量名): 代码块 该方法称为注册动态参数路由 自通过向规则参数添加变量,可以动态构建URL。此变量标记为<变量名>,它作为关键字参数传递给与规则相关联的视图函数。上述代码中的<name>告诉装饰器它是一个变量。并且传递给自定义函数这个视图函数。 新知讲授 四 六、Flask路由--注册动态参数路由举例 【例】将实现不同用户显示不同的欢迎信息,当用户在浏览器访问“http://127.0.0.1:5000/hello/jack”页面时会触发hello函数。并且显示“欢迎jack访问!”可用如下代码实现。 01 import flask as fla 02 app = fla.Flask(__name__) 03 @app.route("/hello/<name>") 04 def hello(name): 05 return "欢迎%s访问!" % name 06 if __name__ == "__main__": 07 app.run() 新知讲授 四 六、Flask路由--注册动态参数路由举例 【例】将实现不同用户显示不同的欢迎信息,当用户在浏览器访问“http://127.0.0.1:5000/hello/jack”页面时会触发hello函数。并且显示“欢迎jack访问!”可用如下代码实现。 新知讲授 四 七、Flask路由构造url url_for() 用url_for()来给指定的函数构造URL 它接受函数名作为第一个参数,也接收对应URL规则的变量部分的命名参数。 未知变量部分会添加到URL末尾作为查询参数 新知讲授 四 七、Flask路由构造url--举例1 【例】将“/hello”URL规则绑定到hello_world()视图函数,hello_world()函数实现通过url_for()返回hello_world()函数的URL功能。 01 from flask import * 02 app = Flask(__name__) 03 @app.route("/hello") 04 def hello_world(): 05 return url_for("hello_world") 06 if __name__ == "__main__": 07 app.run() 新知讲授 四 七、Flask路由构造url--举例展示1 【例】将“/hello”URL规则绑定到hello_world()视图函数,hello_world()函数实现通过url_for()返回hello_world()函数的URL功能。 新知讲授 四 七、Flask路由构造url--举例2 【例】将将“/admin”URL规则绑定到admin()函数,“/guest/<guest>”URL规则绑定到guest(guest)函数,这两个函数分别给出包含用户名的欢迎信息。“/user/<name>”URL规则绑定hello_user(name)函数,该函数实现重定向功能,若name传的是admin则重定向到“/admin”页面,否则重定向到“/guest/<guest>”页面。可用如下代码实现。 ①若浏览器输入“http://127.0.0.1:5000/user/admin”将重定向到“/admin”。 ②若浏览器中输入“http://127.0.0.1:5000/user/***”则重定向到“/guest/<guest>”,*代表除admin以外的任意用户。 ③若浏览器输入“http://127.0.0.1:5000/admin”则访问的是“/admin”。 ④若浏览器中输入“http://127.0.0.1:5000/guest/***”,效果与(2)一样。 新知讲授 四 七、Flask路由--举例2 admin 欢迎Admin回来 guest 欢迎guest访问 ctrl+alt+L键可以快速排版 新知讲授 四 七、Flask路由--HTTP方法 Flask路由响应GET请求。但是可以通过为route()装饰器传递methods参数来更改此首选项 方法 描述 GET 浏览器告知服务器,只获取页面上的信息并发给服务器。这是最常用的方法 POST 用于将HTML表单数据发送到服务器。通过POST方法接收的数据不会被服务器缓存 HEAD 与GET相同,但没有响应主体,只有消息头 PUT 把消息本体中的消息发送到一个URL,跟POST类似但不常用 DELETE 删除给定位置的信息 OPTIONS 给客户端提供一个敏捷的途径来弄清这个URL支持哪些HTTP方法 新知讲授 四 七、Flask路由--HTTP方法举例 01 from flask import * 02 app = Flask(__name__) 03 @app.route("/login", methods=["POST","GET"]) 04 def login(): 05 if request.method == "POST": 06 return "POST方法" 07 elif request.method == "GET": 08 return "GET方法" 09 if __name__ == "__main__": 10 app.run() 浏览器默认是GET方法,所以会返回“GET方法”字符串。 师生互动 五 以4人小组为单位,分组讨论,“Flask调试模式的作用?” Flask 调试模式的作用: 1. 代码自动重载:修改代码并保存后,Flask 服务会自动重启,无需手动停止再启动,直接刷新页面就能看到最新效果。 2. 页面错误调试:代码运行出错时,浏览器页面会显示详细的错误堆栈信息,方便快速定位和修复问题。 随堂练习 1.以下代码中,正确导入Flask库并定义别名的语句是() A.  import flask as fl  B.  from flask import Flask as fla  C.  import Flask from flask  D.  flask import as fla  【答案】A 【解析】导入Flask库的正确语法为 import 库名 as 别名 ,B选项虽能导入Flask类,但使用 import flask as fla 的整体库导入方式;C、D选项存在语法错误,不符合Python导入规范。 六 随堂练习 2.Flask中创建应用实例的正确语句是() A.  app = flask.Flask(__name__)  B.  app = Flask(flask)  C.  app = flask(__name__)  D.  app = Flask.route(__name__)  【答案】A 【解析】创建Flask实例需调用 flask 库中的 Flask 类,参数为 __name__ ,B、C、D选项参数或调用方式错误。 六 随堂练习 3. 开启Flask调试模式的正确代码是() A.  app.run(debug=1)  B.  app.run(debug=True)  C.  app.debug(False)  D.  flask.run(debug=True)  【答案】B 【解析】通过 app.run(debug=True) 开启调试模式, debug 参数为布尔值,A选项的数字1虽在环境变量中可表示开启,但代码中需用布尔值;C、D选项语法错误。 六 随堂练习 4. 以下属于Flask动态参数路由的写法是() A.  @app.route("/hello/name")  B.  @app.route("/hello/<name>")  C.  @app.route("/hello/[name]")  D.  @app.route("/hello/{name}")  【答案】B 【解析】Flask中动态参数路由需用 <变量名> 的格式定义,这是教材中明确的动态路由语法;A为静态路由,C、D为其他语言的参数写法,Flask不支持。 六 随堂练习 5. url_for("hello_world") 函数的作用是() A. 重定向到 hello_world 视图函数 B. 构造 hello_world 视图函数对应的URL C. 定义 hello_world 的路由规则 D. 接收 hello_world 的请求参数 【答案】B 【解析】url_for() 函数的核心功能是为指定视图函数构造URL,A选项是 redirect() 函数的作用;C选项是 @app.route() 的作用;D选项是 request 对象的功能。 六 随堂练习 6.Flask路由默认响应的HTTP方法是() A. POST B. GET C. PUT D. DELETE 【答案】B 【解析】Flask路由未指定 methods 参数时,默认响应GET请求,POST需手动在 @app.route() 中通过 methods=["POST"] 声明。 六 随堂练习 7.要让Flask视图函数同时响应GET和POST请求,路由装饰器应写为() A.  @app.route("/login", methods=["GET", "POST"])  B.  @app.route("/login", method="GET,POST")  C.  @app.route("/login", get=True, post=True)  D.  @app.route("/login", methods=GET, POST)  【答案】A 【解析】 methods 参数需接收列表类型,包含字符串格式的HTTP方法名,这是教材中处理多HTTP方法的标准写法;B选项参数类型错误,C、D选项语法不符合Flask规范。 六 随堂练习 8.以下能获取Flask中POST表单数据的 request 属性是() A.  request.args  B.  request.form  C.  request.cookies  D.  request.method  【答案】B 【解析】request 属性表明确, request.form 用于获取表单参数; request.args 获取URL查询参数; request.cookies 获取Cookie数据; request.method 获取请求方法。 六 课堂小结 八 谢谢 EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn $

资源预览图

第8单元8.2网络应用程序开发(课件)-《程序设计基础-Python》(高教版)同步精品课堂
1
第8单元8.2网络应用程序开发(课件)-《程序设计基础-Python》(高教版)同步精品课堂
2
第8单元8.2网络应用程序开发(课件)-《程序设计基础-Python》(高教版)同步精品课堂
3
第8单元8.2网络应用程序开发(课件)-《程序设计基础-Python》(高教版)同步精品课堂
4
第8单元8.2网络应用程序开发(课件)-《程序设计基础-Python》(高教版)同步精品课堂
5
第8单元8.2网络应用程序开发(课件)-《程序设计基础-Python》(高教版)同步精品课堂
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。