![](https://img-blog.csdnimg.cn/5728357b9f9946b1965d455cd1123971.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Flask
Python Web框架 Flask
冰点契约丶
西安互联网付费就业,Java开发,软件测试开发线上线下辅导 欢迎有需要的朋友咨询。
展开
-
Flask-Migrate
1、Flask-Migrate介绍flask-migrate可以十分方便的进行数据库的迁移与映射,将我们修改过的ORM模型映射到数据库中。flask-migrate是基于Alembic进行的一个封装,并集成到Flask中,所有的迁移操作其实都是Alembic做的,他能跟踪模型的变化,并将变化映射到数据库中。pip install flask-migrate2、Flask-Migrate使用在项目中新建一个db_manager.pyfrom flask_script import Managerfr原创 2021-08-31 23:41:58 · 397 阅读 · 0 评论 -
Flask-Script
1、Flask-Script介绍Flask-Script的作用是可以通过命令行的形式来操作Flask。Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开;pip install flask-script 安装2、Flask-Script基本使用在一个在flask项目中,新建一个新的hello.py,其中的hello功能函数我们希原创 2021-08-31 22:31:38 · 149 阅读 · 0 评论 -
SQLALchemy(三)
数据的CRUD操作1、 构建session对象:所有和数据库的ORM操作都必须通过一个叫做 session 的会话对象来实现,通过以下代码来获取会话对象:from sqlalchemy.orm import sessionmakerengine = create_engine(DB_URI)Base = declarative_base(engine)session = sessionmaker(engine)() # 注意,返回的是一个函数,实现了__call__方法2、添加对象:#创建原创 2021-08-23 23:58:41 · 320 阅读 · 3 评论 -
SQLALchemy框架(二)
SQLALchemy框架SQLAlchemy常用数据类型Integer:整形,映射到数据库中是int类型。Float:浮点类型,映射到数据库中是float类型。他占据的32位。Double:双精度浮点类型,映射到数据库中是double类型,占据64位 (SQLALCHEMY中没有)。String:可变字符类型,映射到数据库中是varchar类型.Boolean:布尔类型,映射到数据库中的是tinyint类型。DECIMAL:定点类型。是专门为了解决浮点类型精度丢失的问题的。在存储钱相关的字段的原创 2021-08-23 00:12:45 · 178 阅读 · 0 评论 -
SQLALchemy框架(一)
SQLALchemy的介绍SQLAlchemy 是 Python 中一个通过 ORM 操作数据库的框架。SQLAlchemy对象关系映射器提供了一种方法,用于将用户定义的Python类与数据库表相关联,并将这些类(对象)的实例与其对应表中的行相关联。它包括一个透明地同步对象及其相关行之间状态的所有变化的系统,称为 工作单元 ,以及根据用户定义的类及其定义的彼此之间的关系表达数据库查询的系统。可以让我们使用类和对象的方式操作数据库,从而从繁琐的 sql 语句中解脱出来。ORM 就是 Object Re原创 2021-08-23 00:05:48 · 281 阅读 · 1 评论 -
RESTful风格接口开发(三)
RESTful的响应处理1、序列化数据Flask-RESTful 提供了marshal工具,用来帮助我们将数据序列化为特定格式的字典数据,以便作为视图的返回值。使用装饰器的方式from flask_restful import Resource, fields, marshal_withresource_fields = {'name': fields.String,'address': fields.String,'user_id': fields.Integer}class Todo原创 2021-08-21 16:44:37 · 150 阅读 · 0 评论 -
RESTful风格接口开发(二)
RESTful风格接口开发(二)一、安装和使用pip install flask-restful1、普通使用from flask import Flaskfrom flask_restful import Resource, Apiapp = Flask(__name__)# 创建api对象api = Api(app)# 创建资源对象,需要继承restful中Resource类class HelloWorldResource(Resource): def get(self): r原创 2021-08-21 15:40:33 · 206 阅读 · 0 评论 -
RESTful风格接口开发(一)
RESTful风格接口开发(一)在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再适用于前端App应用,为了对接App后端还需再开发一套接口。在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端原创 2021-08-21 15:16:02 · 1590 阅读 · 0 评论 -
flask-操作cookie
一、Cookie介绍Cookie是一段不超过4KB的小型文本数据,保存在客户端浏览器中,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。其中 :(1) Name/Value:设置Cookie的名称及相对应的值,对于认证Cookie,Value值包括Web服务器所提供的访问令牌。(2) Expires属性:设置Cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户原创 2021-08-19 22:47:34 · 409 阅读 · 0 评论 -
Flask-请求钩子
在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如:在请求开始时,建立数据库连接;在请求开始时,根据需求进行权限校验;在请求结束时,指定数据的交互格式;为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。请求钩子,在Django框架中叫中间件,在java中被称为拦截器请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子:before_first_request在处理第一个请求前执行before_request在每次请求前执行如果原创 2021-08-19 22:36:40 · 92 阅读 · 0 评论 -
Flask-蓝图
蓝图在一个Flask 应用项目中,如果业务视图过多,可否将以某种方式划分出的业务单元单独维护,将每个单元用到的视图、静态文件、模板文件等独立分开?例如从业务角度上,可将整个应用划分为用户模块单元、商品模块单元、订单模块单元,如何分别开发这些不同单元,并最终整合到一个项目应用中?一、蓝图介绍在Flask中,使用蓝图Blueprint来分模块组织管理。蓝图实际可以理解为是一个存储一组视图方法的容器对象,其具有如下特点:一个应用可以具有多个Blueprint可以将一个Blueprint注册到任何一个未原创 2021-08-17 23:56:44 · 1507 阅读 · 0 评论 -
模板中使用url_for
模板中使用url_for模版中的 url_for 跟我们后台视图函数中的 url_for 使用起来基本是一模一样的。也是传递视图函数的名字,也可以传递参数。使用的时候,需要在 url_for 左右两边加上一个 {{ url_for(‘func’) }}1.动态超链接from flask import Flask, render_templateapp = Flask(__name__)@app.route("/")def index(): return render_template(原创 2021-08-17 22:26:00 · 686 阅读 · 0 评论 -
JinJa2-块和继承
块和继承一般我们的网站虽然页面多,但是很多部分是重用的,比如页首,页脚,导航栏之类的。对于每个页面,都要写这些代码,很麻烦。Flask的Jinja2模板支持模板继承功能,省去了这些重复代码。父模板{% block head %} <p>页首</p> <hr>{% endblock %}{% block foutle %} <hr> <p>页脚</p>{% endblock %}子模板{原创 2021-08-17 21:44:47 · 189 阅读 · 0 评论 -
JinJa2-测试器
测试器测试器总是返回一个布尔值,它可以用来测试一个变量或者表达式,使用”is”关键字来进行测试测试器本质上也是一个函数,它的第一个参数就是待测试的变量,在模板中使用时可以省略去。如果它有第二个参数,模板中就必须传进去。测试器函数返回的必须是一个布尔值,这样才可以用来给if语句作判断1、Jinja2中内置的测试器JinJa2官网{# 检查变量是否被定义,也可以用undefined检查是否未被定义 #}{% if name is defined %}<p>Name is: {{ nam原创 2021-08-16 21:34:10 · 412 阅读 · 0 评论 -
自定义过滤器
自定义过滤器from flask import Flask, render_templateapp = Flask(__name__)@app.route("/")def index(): return render_template("idx.html")# 第一种方式# 源码中调用的依旧是Jinja_env.filters@app.template_filter()def max_number(lst): return max(lst)def _pow(lst:原创 2021-08-16 20:47:21 · 90 阅读 · 0 评论 -
jinja2-过滤器
Jinja2-过滤器什么是过滤器? 实质上就是一个转换函数。变量可以通过“过滤器”进行修改,过滤器可以理解为是jinja2里面的内置函数和字符串处理函数常用的过滤器有:让我们来测试一下<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>字符串过滤器</title></head><body>原创 2021-08-15 14:17:00 · 1350 阅读 · 0 评论 -
falsk-返回响应
1.重定向from flask import redirect@app.route('/demo2')def demo2(): return redirect('http://www.baidu.com')2.返回JSONfrom flask import jsonify@app.route('/demo3')def demo3(): json_dict = { "user_id": 10, "user_name": "laowang" } return jsonify(jso原创 2021-08-14 14:19:28 · 176 阅读 · 0 评论 -
url_for函数与redirect重定向
一般我们通过一个 URL 就可以执行到某一个函数。如果反过来,我们知道一个函数,怎么去获得这个 URL 呢? url_for 函数就可以帮我们实现这个功能。url_for() :函数接收两个及以上的参数,他接收函数名作为第一个参数,接收对应URL规则的命名参数,如果还出现其他的参数,则会添加到 URL 的后面作为查询参数。@app.route('/post/list/<page>/')def my_list(page): return 'my list'@app.route('/')原创 2021-08-12 22:54:49 · 496 阅读 · 0 评论 -
flask-动态路由
动态路由(URL路径参数)Flask不同于Django直接在定义路由时编写正则表达式的方式,而是采用转换器语法:@app.route('/users/<int:user_id>')def user_info(user_id):print(type(user_id))return 'hello user {}'.format(user_id)此处的 <> 即是一个转换器,默认为字符串类型,即将该位置的数据以字符串格式进行匹配、并以字符串为数据类型类型、 user_id 为原创 2021-08-12 21:37:22 · 1114 阅读 · 0 评论 -
flask-路由信息的获取
在程序中获取路由信息在应用中的url_map属性中保存着整个Flask应用的路由映射信息,可以通过读取这个属性获取路由信息print(app.url_map)通过访问 / 地址,以json的方式返回应用内的所有路由信息app.url_map.iter_rules()会返回一个迭代器对象from flask import Flask, jsonapp = Flask(__name__)@app.route("/")def index(): print(app.url_map)原创 2021-08-11 23:17:41 · 758 阅读 · 0 评论 -
flask-参数配置
应用程序配置参数Flask将配置信息保存到了app.config属性中,该属性可以按照字典类型进行操作。1、从配置对象中加载app.config.from_object(配置对象)class DefaultConfig(object): """默认配置""" USER = 'ROOT'app = Flask(__name__)app.config.from_object(DefaultConfig)@app.route("/")def index(): print(app.config[原创 2021-08-11 22:27:06 · 251 阅读 · 0 评论 -
flask对象与run方法的参数说明
Flask对象参数说明:import_name:Flask程序所在的包(模块),传 name 就可以,其可以决定 Flask 在访问静态文件时查找的路径static_url_path:静态文件访问路径,可以不传,默认为:/ + static_folderstatic_folder:静态文件存储的文件夹,可以不传,默认为 statictemplate_folder:模板文件存储的文件夹,可以不传,默认为 templatesapp.run参数可以指定运行的主机IP地址,端口,是否开启调试模式app原创 2021-08-11 22:07:29 · 1189 阅读 · 0 评论