自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vim常用命令

平常最多是用vim来编辑单个文件,看看源码。就是写几k行代码时也没有用一些其他的插件,只是设置了高亮等一些自带的属性。这样的好处是,换到任何一台新机上都能立马使用。网上流传了大量的“vim命令合集”,“把vim打造成一个IDE”之类的文章,我觉得至少对我来说意义不大。我觉得把以下这些命令用熟的话,vim已经算是一个非常好用的工具,足够日常使用了。打开/退出vim -R file1 只...

2018-12-09 12:30:17 162

原创 路由Routers

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

2018-08-29 10:00:30 209

原创 视图集ViewSet

使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中:list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据 destory() 删除数据ViewSet视图集类不再实现get()、post()等方法,而是实现动作 action 如 list() 、create() 等。视图集只在使用as_view()方法...

2018-08-29 09:53:44 313

原创 视图说明

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

2018-08-29 09:53:00 355

原创 Request 与 Response

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

2018-08-29 09:49:00 157

原创 模型类序列化器ModelSerializer

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

2018-08-29 09:47:52 232

原创 DRF 反序列化使用

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

2018-08-23 11:31:50 681

原创 DRF 序列化器的使用

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

2018-08-23 11:31:03 257

原创 DRF 定义序列化器Serializer

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

2018-08-23 11:30:08 574

原创 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 djangorest...

2018-08-23 11:12:34 308

原创 Django REST framework 简介

Django REST framework 简介在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的。 在开发REST API的视图中,虽然每个视图具体操作的数据不同,但增、删、改、查的实现流程基本套路化,所以这部分代码也是可以复用简化编写的: 增:校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保...

2018-08-23 11:11:40 178

原创 django 明确REST接口开发的核心任务

明确REST接口开发的核心任务分析一下上节的案例,可以发现,在开发REST API接口时,视图中做的最主要有三件事:将请求的数据(如JSON格式)转换为模型类对象 操作数据库 将模型类对象转换为响应的数据(如JSON格式)序列化Serialization维基百科中对于序列化的定义:序列化(serialization)在计算机科学的资料处理中,是指将数据结构或物件状态转换成可取...

2018-08-23 10:46:17 137

原创 使用Django开发REST 接口

使用Django开发REST 接口我们以在Django框架中使用的图书英雄案例来写一套支持图书数据增删改查的REST API接口,来理解REST API的开发。在此案例中,前后端均发送JSON格式数据。# views.pyfrom datetime import datetimeclass BooksAPIVIew(View): """ 查询所有图书、增加图书...

2018-08-23 10:45:13 355

原创 django RESTful设计方法

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

2018-08-23 10:43:31 220

原创 django 认识RESTful

认识RESTful在前后端分离的应用模式里,后端API接口如何定义?例如对于后端数据库中保存了商品的信息,前端可能需要对商品数据进行增删改查,那相应的每个操作后端都需要提供一个API接口:POST /add-goods 增加商品 POST /delete-goods 删除商品 POST /update-goods 修改商品 GET /get-goods 查询商品信息对于接口的请...

2018-08-23 10:42:34 1244

转载 数据库的3大范式和5大约束

今天来讲一下数据库的相关知识点,数据库的三大特性可谓是:实体属性和关系。     实体:表; 属性:表中的数据(字段); 关系:表与表之间的关系;     数据库设计三大范式(重点):第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性;例如:userInfo:山东省烟台市  131777368781           userAds...

2018-08-23 10:37:51 114

转载 Python 广度优先/深度优先遍历二叉树

 # -*- coding: utf-8 -*-# author: zhonghua# filename: breadth_depth_tree.py# create: 2016/3/31# version: 1.0# 广度优先/深度优先遍历二叉树class Node: def __init__(self, data, left, right): se...

2018-08-21 22:03:14 1163

转载 python中list的count和index用法举例

>>> str = [1,2,3,4,5] #定义一个列表>>> str *= 3 #列表*3>>> str[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]>>&g...

2018-08-21 17:09:36 2056

转载 Python的hasattr() getattr() setattr() 函数使用方法详解

hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来 1 >>> class test(): 2 ... name="xiaohua" 3 ... def run(self): 4 ... ...

2018-08-21 15:50:30 128

转载 时间复杂度和空间复杂度

算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量; 而空间复杂度是指执行这个算法所需要的内存空间。 (算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。简单来说,时间复杂度指的是语句执行次数,空间复杂度指的是算法所占的存储空间时间复杂度 计算时间复杂度...

2018-08-21 11:11:55 144

转载 Python将多个list合并为1个list

1可以使用"+"号完成操作输出为:[1, 2, 3, 8, 'google', 'com']2.使用extend方法、输入相同3使用切片输出相同PS:len(l1)代表要将l2插入l1中的位置例如输出为:又如:输出为:总结:第一种方方法思路比较清晰,就是运算符的重载;第二种方法比较简洁,但会覆盖原始list;第三种方法功能...

2018-08-20 18:21:52 12965

转载 Python值传递还是引用传递

Python值传递还是引用传递Python作为一门动态语言,变量本身的类型是不固定的,因此更加灵活。那Python到底是值传递还是引用传递呢?问题引出本人在本周写代码时,遇到这么一个让我注意的问题,问题可以抽象如下:def func(val1): val2 = val1 val2.append(1) ...a = []...(一系列对a的操作)b ...

2018-08-20 16:14:00 1469

转载 python OrderedDict介绍

使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。如果要保持Key的顺序,可以用OrderedDict:   >>> from collections import OrderedDict >>> d = dict([('a', 1), ('b', 2), ('c', 3)]) >&g...

2018-08-20 16:02:08 594

转载 Python中is和==(is not和!=)的区别

Python中有很多种运算符,本文主要记录一下is和==这两种运算符的区别:id()函数是查看该对象所在内存地址。每个对象都有对应的内存地址,如:>>> id(1)1543816880>>> id("abc")2880674151480>>> id([1, 2, 3])2880703493384is 用于判断两个变量...

2018-08-20 15:52:10 8134

转载 python 列表,元组,字符串 切片 超出索引值不报错

通常情况下,当我们以索引值对一个字符串,或者元组,列表取值时,如果索引超出边界,就会报错,但是如果我们使用切片呢? 字符串: 列表:  元组:可以看到,这三种情况都没有报错,而是返回对应类型的空结果!...

2018-08-20 15:15:26 3367

转载 python 元组--元组到底可不可以被修改

2.元组--tuple   ()/(1,)2.1创建和访问一个元组如果创建一个空元组,直接使用小括号即可;如果要创建的元组中只有一个元素,要在它的后面加上一个逗号‘,’。  >>> temp = () >>> type(temp) <class 'tuple'>   >>> ...

2018-08-20 14:57:52 4681

转载 python3排序 sorted(key=lambda)

使用python对列表(list)进行排序,说简单也简单,说复杂也复杂,我一开始学的时候也搞不懂在说什么,只能搜索一些英文文章看看讲解,现在积累了一些经验,写在这里跟大家分享,我们通过例子来详细解释一下函数sorted的具体用法: 先创建一个列表a                                                                         ...

2018-08-16 15:29:23 349

转载 Git 常用命令总结

git的一些基础命令Git常用命令请确保已经安装里git客户端 一般配置  git --version //查看git的版本信息 git config --global user.name //获取当前登录的用户 git config --global user.email //获取当前登录用户的邮箱  登录git  /* 如...

2018-08-15 22:20:20 109

转载 python学习——计算阶乘的几种方法

方法一: 很普通的for循环语句:a = 1n = 5for i in range(1,n+1): a = a * iprint(a)得到结果:120 方法二: 采用上篇博文提到的reduce()函数:from functools import reducen = 5print(reduce(lambda x,y:x*y,range(1,n+1))...

2018-08-15 19:09:23 2684

原创 python 内置模块

time 模块 1 1 >>> import time 2 2 >>> time.time() 3 3 1491064723.808669 4 4 >>> # time.time()返回当前时间的时间戳timestamp(定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)的方法,无参数 5 5...

2018-08-15 01:25:47 223

转载 Python 字符串操作方法大全

Python 字符串操作方法大全1、去空格及特殊符号复制代码代码如下:s.strip().lstrip().rstrip(',')2、复制字符串复制代码代码如下:#strcpy(sStr1,sStr2)sStr1 = 'strcpy'sStr2 = sStr1sStr1 = 'strcpy2'print sStr23、连接字符串复制代码代码如下:#str...

2018-08-13 23:37:52 148

转载 Python排序算法之冒泡排序

冒泡排序顾名思义,冒泡排序直观的意思是气泡越大冒的越快:),对应到我们的列表中就是数字最大的先选出来,然后依次进行。例如 myList = [1,4,5,0,6],比较方式为:  相邻的两个数字先进行比较,也就是myList[0]和myList[1],发现不是">"的关系,就继续比较myList[1]和myList[2]。。。依次进行,发现myList[2]>myList[3]...

2018-08-13 17:26:35 91

转载 python中关于删除列表中的某个元素

1.remove: 删除单个元素,删除首个符合条件的元素,按值删除举例说明:>>> str=[1,2,3,4,5,2,6]>>> str.remove(2)>>> str[1, 3, 4, 5, 2, 6]2.pop: 删除单个或多个元素,按位删除(根据索引删除)>>> str=[0,1,2,3,4,5,...

2018-08-12 20:38:21 8779

转载 Python中的lambda的简单介绍

在学习python的过程中,lambda的语法经常出现,现在将它整理一下,以备日后查看。   1、lambda是什么?举个例子如下:1 func=lambda x:x+12 print(func(1))3 #24 print(func(2))5 #36 7 #以上lambda等同于以下函数8 def func(x):9 return(x+1)  可以这样认...

2018-08-12 11:10:33 207

转载 Python 排序---sort与sorted学习

Python 排序---sort与sorted学习当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法:第一种:内建方法sort()可以直接对列表进行排序用法:list.sort(func=None, key=None, reverse=False(or True))对于reverse这个bool类型参...

2018-08-11 11:38:16 139

转载 python 列表去重(数组)的几种方法

python 列表去重(数组)的几种方法一、方法1 代码如下   ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids:     if id not in news_ids:         news_ids.append(id) print news_ids 思路看起...

2018-08-11 11:31:35 270

原创 Redis相关⽂档

参考命令 http://doc.redisfans.com/官⽅⽂档 http://redis-py.readthedocs.io/en/latest/#indices-and-tables

2018-07-29 21:18:42 87

原创 django数据库查询

查询2.1基本查询get 查询单一结果,如果不存在会抛出模型类.DoesNotExist异常。all 查询多个结果。count 查询结果数量。2.2 过滤查询实现SQL中的where功能,包括filter 过滤出多个结果exclude 排除掉符合条件剩下的结果get 过滤单一结果过滤条件的表达语法如下:属性名称__比较运算符=值# 属性名称和比较运算符间使用两个下划线,所以属性名不能包括多个下划线...

2018-07-12 23:07:50 348

原创 Django数据库操作

数据库1.使用MYSQL数据库首先需要安装驱动程序pip install PyMySQL2.在Django的工程同名子目录的__init__.py文件中添加如下语句from pymysql improt install_as_MYSQLdbinstall_as_MYSQLdb3.在MySQL中创建数据库create database django_demo default charset=utf8...

2018-07-11 21:25:22 208

原创 listdir() 方法的使用

语法:os.list(path)参数:path--需要列出目录的路径返回值:返回指定路径下的文件和文件夹列表import os# 打开文件path = os.getcwd()dirs = os.listdir( path )# 输出所有文件和文件夹for file in dirs: print (file)...

2018-04-14 20:36:57 2943

空空如也

空空如也

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

TA关注的人

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