自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 FLASK代码抽取

代码抽取目标:将特定逻辑代码抽取到指定的类中,各司其职,放便后续项目维护配置文件在与 manage.py 同级目录下创建 config.py 文件,用作于项目的配置文件import redisclass Config(object): """工程配置信息""" SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yC...

2018-06-28 14:42:00 344

原创 Flask项目基本配置

项目基本配置Config类先在当前类中定义配置的类,并从中加载配置app = Flask(__name__)class Config(object): """工程配置信息""" DEBUG = Trueapp.config.from_object(Config)运行测试SQLAlchemy导入数据库扩展,并在配置中填写相关配置from flask_sqlalchemy i...

2018-06-28 14:39:24 712

原创 flask项目框架搭建

项目框架搭建目标:使用 Pycharm 为项目设置 Git 版本控制完成项目基本配置抽取代码,熟悉项目目录结构创建项目新建项目,虚拟环境选择python3版本,创建 manage.py 文件from flask import Flaskapp = Flask(__name__)@app.route('/index')def index(): return 'index'if ...

2018-06-28 14:38:29 304

原创 异常处理 Exceptions

异常处理 ExceptionsREST framework提供了异常处理,我们可以自定义异常处理函数。from rest_framework.views import exception_handlerdef custom_exception_handler(exc, context): # 先调用REST framework默认的异常处理方法获得标准错误响应对象 respon...

2018-06-28 14:35:46 586

原创 排序与分页Pagination

排序对于列表数据,REST framework提供了OrderingFilter过滤器来帮助我们快速指明数据按照指定字段进行排序。使用方法:在类视图中设置filter_backends,使用rest_framework.filters.OrderingFilter过滤器,REST framework会在请求的查询字符串参数中检查是否包含了ordering参数,如果包含了ordering参数,则按照...

2018-06-28 14:35:16 2329

原创 过滤Filtering

过滤Filtering对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。pip insall django-filter在配置文件中增加过滤后端的设置:INSTALLED_APPS = [ ... 'django_filters', # 需要注册应用,]REST_FRAMEWORK = { 'DEFAULT_FILT...

2018-06-28 14:34:10 209

原创 限流Throttling

限流Throttling可以对接口访问的频次进行限制,以减轻服务器压力。使用可以在配置文件中,使用DEFAULT_THROTTLE_CLASSES 和 DEFAULT_THROTTLE_RATES进行全局配置,REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ( 'rest_framework.throttling.AnonRat...

2018-06-28 14:33:42 400

原创 权限Permissions

权限Permissions权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。在执行视图的dispatch()方法前,会先进行视图访问权限的判断在通过get_object()获取具体对象时,会进行对象访问权限的判断使用可以在配置文件中设置默认的权限管理类,如REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'res...

2018-06-28 14:32:59 2640

原创 认证Authentication

认证Authentication可以在配置文件中配置全局默认的认证方案REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.BasicAuthentication', # 基本认证 'rest_framework.authenticati...

2018-06-28 14:32:36 477

原创 DRF路由Routers

路由Routers对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。REST framework提供了两个routerSimpleRouterDefaultRouter1. 使用方法1) 创建router对象,并注册视图集,例如from rest_framework import routersro...

2018-06-28 14:32:08 1880

原创 视图基类与五个扩展类

视图说明1. 两个基类1)APIViewrest_framework.views.APIViewAPIView是REST framework提供的所有视图的基类,继承自Django的View父类。APIView与View的不同之处在于:传入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象;视图方法可以返回REST framework...

2018-06-27 17:35:53 761

原创 View视图预览(要熟悉理解)

视图概览REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写。视图的继承关系:视图的方法与属性:

2018-06-27 17:34:58 394

原创 DRF视图中的Request 与 Response请求

Request 与 Response1. RequestREST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。REST framework 提供了Parser解析器,在接收到请求后会自动根据Content-Type指明的请求数据类型(如JSON、表单...

2018-06-27 17:31:02 2368 1

原创 模型类序列化器

模型类序列化器ModelSerializer如果我们想要使用序列化器对应的是Django的模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类。ModelSerializer与常规的Serializer相同,但提供了:基于模型类自动生成一系列字段基于模型类自动为Serializer生成validators,比如unique_togeth...

2018-06-27 17:29:47 1574 2

原创 反序列化使用

反序列化使用1. 验证使用序列化器进行反序列化时,需要对数据进行验证后,才能获取验证成功的数据或保存成模型类对象。在获取反序列化的数据前,必须调用is_valid()方法进行验证,验证成功返回True,否则返回False。验证失败,可以通过序列化器对象的errors属性获取错误信息,返回字典,包含了字段和字段的错误。如果是非字段错误,可以通过修改REST framework配置中的NON_FIEL...

2018-06-27 17:29:09 562

原创 序列化器使用

Django课程讲义序列化使用我们在django shell中来学习序列化器的使用。python manage.py shell1 基本使用1) 先查询出一个图书对象from booktest.models import BookInfobook = BookInfo.objects.get(id=2)2) 构造序列化器对象from booktest.serializers import Book...

2018-06-27 17:28:24 502

原创 Serializer序列化器使用

定义Serializer1. 定义方法Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializer。例如,我们已有了一个数据库模型类BookInfoclass BookInfo(models.Model): btitle = models.CharField(max_length=20, ...

2018-06-27 17:27:32 5610

原创 见识DRF魅力

见识DRF的魅力我们仍以在学习Django框架时使用的图书英雄为案例,使用Django REST framework快速实现图书的REST API。1. 创建序列化器在booktest应用中新建serializers.py用于保存该应用的序列化器。创建一个BookInfoSerializer用于序列化与反序列化。class BookInfoSerializer(serializers.ModelS...

2018-06-27 17:26:36 301

原创 DRF框架工程搭建环境

环境安装与配置DRF需要以下依赖:Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)Django (1.10, 1.11, 2.0)DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环境安装Django)1. 安装DRFpip install djangorestframework2. ...

2018-06-27 17:25:46 452

原创 Restful设计风格与方法

RESTful设计方法1. 域名应该尽量将API部署在专用域名之下。https://api.example.com如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。https://example.org/api/2. 版本(Versioning)应该将API的版本号放入URL。http://www.example.com/app/1.0/foohttp://www.example.co...

2018-06-27 17:23:09 215

原创 udp socket

创建socket在 Python 中 使用socket 模块的函数 socket 就可以完成:import socketsocket.socket(AddressFamily, Type)说明:函数 socket.socket 创建一个 socket,该函数带有两个参数:Address Family:可以选择 AF_INET(用于 Internet 进程间通信 表示IPv4协议) 或者 AF_...

2018-05-12 00:48:34 106

原创 liunx基础命令

Linux命令的基本格式如下:command [-options] [parameter]说明:command:命令名,相应功能的英文单词或单词的缩写。[-options]:选项,可用来对命令进行控制,也可以省略。parameter:传给命令的参数,可以是 零个、一个 或者 多个。中括号[] 代表可选。 command是要做的事情,parameter是对谁做这样的事情,option是如何做这样的...

2018-05-12 00:46:10 228

原创 闭包及装饰器(初)

"""定义一个func函数"""def func(text): """创建一个闭包函数""" print('-----1-----') # 此项打印是方便我们调试 def func_in(): # 在func中定义一个func_in函数 print('------2----') text() # 引用func传来的参数对

2018-04-17 16:37:29 67

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除