![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flask
夕麻
这个作者很懒,什么都没留下…
展开
-
flask Restful插件
Flask-Restful是一个专门用来写restful api的一个插件。使用他可以快速的集成restful api功能。在app的后台以及纯api的后台中,这个插件可以帮助我们节省很多时间。当然,如果在普通的网站中,这个插件就显得有些鸡肋了,因为在普通的网页开发中,是需要去渲染HTML代码的,而Flask-Restful在每个请求中都是返回json格式的数据。安装Flask-Restful需要在Flask 0.8以上的版本,在Python2.6或者Python3.3上运行。通过pip install原创 2020-06-11 19:14:44 · 266 阅读 · 0 评论 -
flask Restful API规范
restful api是用于在前端与后台进行通信的一套规范。使用这个规范可以让前后端开发变得更加轻松。以下将讨论这套规范的一些设计细节。协议采用http或者https协议数据传输格式数据之间传输的格式应该都使用json,而不使用xml。url链接url链接中,不能有动词,只能有名词。并且对于一些名词,如果出现复数,那么应该在后面加s。HTTP请求的方法GET:从服务器上获取资源。POST:在服务器上新创建一个资源。PUT:在服务器上更新资源。(客户端提供所有改变后的数据)PATCH:原创 2020-05-25 14:31:34 · 527 阅读 · 0 评论 -
flask 上下文
Flask项目中有两个上下文,一个是应用上下文(app),另外一个是请求上下文(request)。请求上下文request和应用上下文current_app都是一个全局变量。所有请求都共享的。Flask有特殊的机制可以保证每次请求的数据都是隔离的,即A请求所产生的数据不会影响到B请求。所以可以直接导入request对象,也不会被一些脏数据影响了,并且不需要在每个函数中使用request的时候传入request对象。钩子函数钩子函数就是当一个事件触发时,来进行钩子函数得内容,有在事件之前,之后等befo原创 2020-05-24 12:40:01 · 318 阅读 · 0 评论 -
flask cookie和session
cookie在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用cookie只能存原创 2020-05-19 22:37:34 · 145 阅读 · 0 评论 -
flask WTForms表单验证
Flask-WTFFlask-WTF是简化了WTForms操作的一个第三方库。WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。当然还包括一些其他的功能:CSRF保护,文件上传等。安装Flask-WTF默认也会安装WTForms,因此使用以下命令来安装Flask-WTFpip install flask-wtf表单验证安装完Flask-WTF后。来看下第一个功能,就是用表单来做数据验证,现在有一个forms.py文件,然后在里面创建一个RegistForm的注册验证表单fr原创 2020-05-18 18:51:38 · 321 阅读 · 0 评论 -
Flask-Migrate
在实际的开发环境中,经常会发生数据库修改的行为。一般我们修改数据库不会直接手动的去修改,而是去修改ORM对应的模型,然后再把模型映射到数据库中。这时候如果有一个工具能专门做这种事情,就显得非常有用了,而flask-migrate就是做这个事情的。flask-migrate是基于Alembic进行的一个封装,并集成到Flask中,而所有的迁移操作其实都是Alembic做的,他能跟踪模型的变化,并将变化映射到数据库中。首先我们需要安装migrate的模块pip install flask-migrate原创 2020-05-12 19:22:04 · 287 阅读 · 0 评论 -
Flask-Script
Flask-Script的作用是可以通过命令行的形式来操作Flask。例如通过命令跑一个开发版本的服务器、设置数据库,定时任务等。要使用Flask-Script,可以通过pip install flask-script安装最新版本from flask_script import Managerfrom flask_app import appmanager = Manager(app)@manager.commanddef hello(): print('hello')if __n原创 2020-05-09 22:58:05 · 1287 阅读 · 0 评论 -
flask SQLAlchemy插件
我们之前学习了SQLAlchemy的用法,但是最终我们还需要把SQLAlchemy运用到flask中,这时候我们就需要用到flask的SQLAlchemy插件Flask-SQLAlchemy,Flask-SQLAlchemy是对SQLAlchemy进行了一个简单的封装,使得我们在flask中使用sqlalchemy更加的简单。可以通过pip install flask-sqlalchemy。使用...原创 2020-05-08 09:53:23 · 139 阅读 · 0 评论 -
flask SQLAlchemy排序和查询
排序1.order_by:可以指定根据这个表中的某个字段进行排序,如果在前面加了一个-,代表的是降序排序。2.在模型定义的时候指定默认排序:有些时候,不想每次在查询的时候都指定排序的方式,可以在定义模型的时候就指定排序的方式。在模型定义中,添加以下代码 __mapper_args__ = { "order_by": title }即可让文章使用标题来进行排序。3....原创 2020-04-29 15:52:21 · 3840 阅读 · 0 评论 -
flask 外键及其约束
外键在Mysql中,外键可以使两张表联系起来。那么SQLAlchemy怎样使用外键呢。我们可以通过ForeignKey类来实现,并且可以指定表的外键约束from sqlalchemy import ForeignKeyclass Article(Base): __tablename__ = 'article' id = Column(Integer,primary_key=...原创 2020-04-28 17:44:00 · 934 阅读 · 0 评论 -
flask SQLAlchemy属性常用数据类型
常用数据类型Integer:整形。Float:浮点类型。Boolean:传递True/False进去。DECIMAL:定点类型。enum:枚举类型。Date:传递datetime.date()进去。DateTime:传递datetime.datetime()进去。Time:传递datetime.time()进去。String:字符类型,使用时需要指定长度,区别于Text类型。...原创 2020-04-27 14:07:27 · 810 阅读 · 0 评论 -
flask 蓝图和子域名
蓝图之前我们写的url和视图函数都是处在同一个文件,如果项目比较大的话,这显然不是一个合理的结构,而蓝图可以优雅的帮我们实现这种需求。from flask import Blueprintuser_bp = Blueprint('user',__name__,url_prefix='/user/')@user_bp.route('/')def index(): return "用...原创 2020-04-22 12:50:42 · 153 阅读 · 0 评论 -
flask SQLAlchemy-ORM增删改查
ORM介绍随着项目越来越大,采用原生SQL的方式在代码中会出现大量的SQL语句,对项目的进展非常不利SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近似的SQL语句很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,很容易漏掉某些SQL语句的修改写SQL时容易忽略web安全问题ORM: Object Relationship M...原创 2020-04-21 16:39:49 · 705 阅读 · 0 评论 -
flask SQLAlchemy介绍和基本使用
数据库是一个网站的基础。Flask可以使用很多种数据库。比如MySQL,MongoDB,SQLite,PostgreSQL等。这里我们以MySQL为例进行讲解。而在Flask中,如果想要操作数据库,我们可以使用ORM来操作数据库,使用ORM操作数据库将变得非常简单。在讲解Flask中的数据库操作之前,先要安装这些模块mysql:如果是在windows上,到官网下载。如果是ubuntu,通过...原创 2020-04-20 18:00:02 · 590 阅读 · 0 评论 -
flask 类视图
之前我们接触的视图都是函数,所以一般简称视图函数。其实视图也可以基于类来实现,类视图的好处是支持继承,但是类视图因为没有函数视图一般的装饰器,所以写完类视图还需要通过app.add_url_rule(url_rule,view_func)来进行注册。标准类视图标准类视图是继承自flask.views.View,并且在子类中必须实现dispatch_request方法,否则便会报错,这个方法类似...原创 2020-04-18 18:50:30 · 398 阅读 · 1 评论 -
flask 模板继承
模板继承Flask中的模板可以继承,通过继承可以把模板中许多重复出现的元素抽取出来,放在父模板中,并且父模板通过定义block给子模板开-个口,子模板根据需要,再实现这个block,假设现在有一个base. html这个父模板<!DOCTYPE html><html lang="en"><head> <link rel="styleshee...原创 2020-04-16 10:02:36 · 158 阅读 · 0 评论 -
flask 宏、import、include和set
宏模板中的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量{% macro input(name, value='', type='text') %} <input type="{{ type }}" name="{{ name }}" value="{{ value }}">{%...原创 2020-04-12 13:39:42 · 195 阅读 · 0 评论 -
flask Jinja2模版过滤器和控制语句
Jinja2模版过滤器过滤器是通过管道符号(|)进行使用的,例如:{{ name|length }},将返回name的长度。过滤器相当于是一个函数,把当前的变量传入到过滤器中,然后过滤器根据自己的功能,再返回相应的值,之后再将结果渲染到页面中。Jinja2中内置了许多过滤器,在这里可以看到所有的过滤器abs(value):返回一个数值的绝对值。default(value,default_v...原创 2020-04-11 20:48:47 · 211 阅读 · 0 评论 -
flask 模板简介
模板简介模板是一个web开发必备的模块。因为我们在渲染一个网页的时候,并不是只渲染一个纯文本字符串,而是需要渲染一个有富文本标签的页面。这时候我们就需要使用模板了。在Flask中,配套的模板是Jinja2,Jinja2的作者也是Flask的作者。这个模板非常的强大,并且执行效率高。以下对Jinja2做一个简单介绍!Flask渲染Jinja模板要渲染一个模板,通过render_template...原创 2020-04-10 12:42:42 · 334 阅读 · 0 评论 -
flask URL与视图
URL与函数的映射从之前的helloworld.py文件中,我们已经看到,一个URL要与执行函数进行映射,使用的是@app.route装饰器。@app.route装饰器中,可以指定URL的规则来进行更加详细的映射,比如现在要映射一个文章详情的URL,文章详情的URL是/article/id/,id有可能为1、2、3…,那么可以通过以下方式@app.route('/article/<id&...原创 2020-04-09 16:31:12 · 147 阅读 · 0 评论 -
flask 项目配置
设置为DEBUG模式默认情况下flask不会开启DEBUG模式,在DEBUG模式关闭时,每次代码框的改动仅保存不能在网页上体现,需要重新运行后才可以。而开启DEBUG模式后,flask会在每次保存代码的时候自动的重新载入代码,并且如果代码有错误,会在终端进行提示。开启DEBUG模式的方式1.直接在应用对象上设置app.debug = Trueapp.run()2.在执行run方法的时...原创 2020-04-07 19:51:02 · 615 阅读 · 0 评论 -
Flask简介
Flask简介flask是一款非常流行的Python Web框架,出生于2010年,作者是Armin Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正式的项目。刚好最近愚人节也刚过,是不是自己也和flask挺有缘的(笑)flask自2010年发布第一个版本以来,大受欢迎,深得开发者的喜爱,并且在多个公司已经得到了应用,flask能如此流行的原因,...原创 2020-04-06 12:42:39 · 428 阅读 · 0 评论 -
python 虚拟环境
为什么需要虚拟环境到目前位置,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中。但是这样有一个问题,就是如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就会...原创 2020-04-05 15:20:02 · 82 阅读 · 0 评论