Flask笔记
文章平均质量分 68
课程链接 https://www.bilibili.com/video/BV1w64y1d7ZE
Suyuoa
这个作者很懒,什么都没留下…
展开
-
附录3-flask解决跨域
如果不加跨域在前端的Ajax中会出现这样的问题。加入跨域装饰器cross_origin。我们的服务现在是这样的。加入后可以解决跨域问题。原创 2022-10-25 11:23:31 · 321 阅读 · 0 评论 -
12.上下文
上下文是flask独有的概念,falsk中的request对象是全局变量,在不同的线程我们得到的不同的响应,比如我们下面的这个上下文分为请求上下文和应用上下文,上面的就是请求上下文request,除了request,session也是请求上下文应用上下文有 current_app与g对象 ,这两个我们之前都没有用过目录1current_app2g对象1current_appcurrent_app可以返回当前的应用对象,我们写一个代码看一下为了清晰展示我们这...原创 2022-02-14 16:48:00 · 91 阅读 · 0 评论 -
11.异常处理与请求钩子
项目名称为 third_template目录1异常处理1.1中止 abort()1.2捕获错误装饰器 errorhandler()1.2.1装饰状态码1.2.2装饰错误信息2请求钩子1异常处理1.1中止 abort()我们现在写这样一组路由和视图我们正常的访问应该是这样的那么如果用户不给age,那么它就会报500(服务端错误)我现在不想让他报500,而是想让他报400(请求端错误),这个时候我们可以使用abort...原创 2022-03-28 17:48:25 · 367 阅读 · 0 评论 -
10.cookie与session
项目名称为 third_template目录1cookie1.1设置1.2读取1.3删除2session2.1设置2.2获取1cookiecookie是储存在用户本地上的数据,一般用来辨明用户身份1.1设置我们可以通过make_response中的set_cookie设置cookie我们访问一下发现可以看到cookie的数据,我们也可以在这里查看cookie在这里可以看到我们cookie的信息...原创 2022-03-29 09:01:19 · 191 阅读 · 0 评论 -
9.响应
继续用之前代码比较乱,我们新建一个项目名为third_template,项目中此时依然只放一个main.py项目名称为 third_template目录1返回模板1.1使用模板 render_template()1.2以变量名的形式向模板传递参数1.3以字典的方式向模板传递参数2重定向 redirect()3返回JSON4自定义状态码与响应头4.1自定义状态码4.2自定义响应头4.3make_response方式...原创 2022-03-28 17:44:07 · 639 阅读 · 0 评论 -
8.flask中的request对象
项目名称为 P18-P25 second_bule_printflask中的request对象不同与django每个视图都有,flask的request对象是全局对象,使用时需要导入对象中有如下常用属性目录1 get请求2post发送一段json信息3post发送一个文件1 get请求我们现在发一个get请求(浏览器访问)看一下,首先写一个路由,由于怕与蓝图的路由有冲突,所以我在app中定义路由然后我们访问一下2post发送一段json信息...原创 2022-03-28 17:40:15 · 1564 阅读 · 0 评论 -
7.路由转换器
项目名称为 P18-P25 second_bule_print目录1不添加过滤器2添加过滤器2.1any过滤器2.2path过滤器2.3uuid 过滤器2.4其他过滤器2.5自定义过滤器1不添加过滤器路由的转换实际上就是对get请求的操作我们一般使用路由转换处理非敏感的数据(如小说网站的小说页数等),在flask中我们这样写这时我们访问一下该路由2添加过滤器那么如果我想对路由的格式有要求,那么我应该这样写...原创 2022-03-28 17:37:16 · 664 阅读 · 0 评论 -
6.蓝图
由于项目中代码比较多了,在P18的时候我们新建一个项目,创建后是这个样子的项目名称为 second_bule_print,这个blue我写错了,但是后面截图还是按这个名字走的,我就不改了flask中的蓝图是多个路由与视图集成的产物,相当于django中的子应用,创建蓝图的目的是方便复用与维护蓝图可以有自己的模板,静态文件,但是蓝图并不是一个完整的应用,不能独立运行目录1 与应用对象在同一文件的蓝图2与应用对象不在同一文件的蓝图3蓝图的静态文件1 与应用对象在同一文...原创 2022-03-28 17:26:47 · 471 阅读 · 0 评论 -
5.查询所有路由与请求限制
项目名称为 P1-P17 first_hello_world目录1flask查询所有路由1.1命令行方式1.2代码获取 app.url_map2请求限制1flask查询所有路由1.1命令行方式首先我们要定义FLASK_APP这个变量到我们要开启的服务文件,然后我们输入flask routes服务开启与否不影响查询1.2代码获取 app.url_map代码获取使用app.url_map,我们打印出来看一下运行结果中这里就是我们所...原创 2022-03-28 17:23:38 · 1008 阅读 · 0 评论 -
4.封装工厂函数与app.run()
项目名称为 P1-P17 first_hello_world目录1封装工厂函数2app.run()参数3flask run开启服务1封装工厂函数在一个py文件中,我们可以用到多个app,为了减少代码量,我们可以把创建app的代码封装成一个函数(我们称其为工厂函数),一般来讲加载属性使用加载类的方法配合环境变量的方法就足够了,所以我们可以将函数封装成这样运行后我们发现没有问题,我们注意一下这里在我们以往的学习中 Debug mode都是off,这里这个代...原创 2022-03-28 17:21:31 · 1890 阅读 · 0 评论 -
3.加载配置
项目名称为 P1-P17 first_hello_world目录1从类对象中加载 from_object()2从配置文件中加载 from_pyfile()3从环境变量中加载3.1windows上创建环境变量3.2修改代码3.3在终端上运行3.4在pycharm上运行1从类对象中加载 from_object()我们先定义一个配置的类,里面有一个变量SECRET_KEY,然后使用config.from_object获取对象中的内容,获取后a...原创 2022-03-28 17:17:38 · 319 阅读 · 0 评论 -
2.创建app的基础参数
项目名称为 P1-P17 first_hello_world目录1import_name2静态文件与模板文件3静态文件路径索引1import_name我们在这里传入了__name__我们看一下Flask这个方法这里的__name__对应的是import_name,如果使用__name__,我们的app就叫我们当前py文件的名字我们也可以传入任意字符串一般我们都使用__name__,这样就会将该py文件的上一级目录,作为整个项目的根目录,...原创 2022-03-28 17:13:59 · 743 阅读 · 0 评论 -
1.创建一个简单的服务
项目名称为 P1-P17 first_hello_world目录1基本介绍2创建环境3helloworld1基本介绍python的web开发最主流的是两个框架,flask与django,flask相对于django更加轻量,flask只提供核心功能,如果为了快速实现功能就使用django,如果后续还要改很多次就用FlaskWerkzeug(路由模块)与Jinja2(模板引擎)的flask的重要组成部分这些是flask的常用扩展包,后续如果有用的地方会提到...原创 2022-03-28 17:11:27 · 617 阅读 · 0 评论 -
附录2-客户端向服务端上传文件
如果使用windows系统作为服务端,需要将防火墙关掉,在这里有提到关闭防火墙的方法附录1-服务端向客户端发送文件_Suyuoa的博客-CSDN博客目录1服务端(接收方)要做的事情2客户端(上传方)需要做的事情3上传文件的位置1服务端(接收方)要做的事情建一个项目,项目中有如下内容main.py的内容是这样的upload.html的内容是这样的之后运行main.py开启服务2客户端(上传方)需要做的事情用浏览器访问我们IP+端...原创 2022-03-17 14:00:29 · 923 阅读 · 0 评论 -
附录1-服务端向客户端发送文件
目录1 提供文件方要做的事情2接收方要做的事情1 提供文件方要做的事情首先写一个main.py,内容如下from flask import Flaskapp = Flask(__name__)@app.route('/file')def file(): return app.send_static_file('需要传输的文件.zip')@app.route('/')def test(): return 'test'if __name__ == ..原创 2022-03-04 09:45:50 · 885 阅读 · 0 评论