- 博客(91)
- 收藏
- 关注

原创 REST framework(六) 其它组件
权限组件#查看AllowAny源码自定义一个权限组件from rest_framework.permissions import AllowAny#自定义一个权限组件class SVIPPermission(object): message="没有权限访问!" def has_permission(self,request,view): user_t...
2018-08-06 23:38:17
208

原创 REST framework(五) 认证组件
REST framework 的认证组件是在* VIPView *dispatch 下执行的。跟着源码过了下,了解它的实现过程。 上图源代码中的self.authenticators就是一个认证组件类的一个列表,我们在接下来后面的自定义认证组件时,就要注意这里面的源代源内容,自定义类的类名可以自己起,而类中的方法名是有特定的名字authenticator。因为源代源中user...
2018-08-03 23:31:22
623

原创 REST framework(四) 解析器源码解读
首先我们要只要记住一点,当我们当代码执行* request.data * 时候,会去执行解析器。我们所使的的request是REST fromework下dispatch生成的,不是jango的。 ...
2018-08-02 23:36:22
317

原创 REST framework(三) 视图组件
REST framework 提供了一个 APIView 类,它继承于 Django 的 View 类。APIView 类与不同的 View 类有所不同:传递给处理方法的 request 对象是 REST framework 的 Request 实例,而不是 Django 的 HttpRequest 实例。处理方法可能返回 REST framework 的 Response,而不是 ...
2018-08-02 16:51:13
618

原创 REST framework(二) 序列化
序列化器允许将诸如查询集和模型实例之类的复杂数据转换为原生 Python 数据类型,然后可以将它们轻松地呈现为 JSON,XML 或其他内容类型。序列化器还提供反序列化,在首次验证传入数据之后,可以将解析的数据转换回复杂类型。 REST framework 中的序列化类与 Django 的 Form 和 ModelForm 类非常相似。我们提供了一个 Serializer 类,它...
2018-08-01 17:19:22
572

原创 REST framework(一) APIView
RestframeworkCBV(class based view)CBV(class base views) 就是在视图里使用类处理请求。Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。所以Django在后来加入了Class-Based-View。可以让我们用类写View。这样做的优点主要下面两种:提高了代码的复用...
2018-07-31 16:04:36
2591

原创 (Python)装饰器
在了解函数的装饰器之前,我们先了解一个开发上的原则:开放封闭原则。 软件上线后,就要遵行这个原则,它就是对修改源代码是封闭的,对功能是开放的。为了遵行这个原则,我们就要找到一种好的解决方案来实现不修改一个功能源代码,以及它的调用方式的前提下,为它加上新的功能。装饰器就是在不修改被装饰对象源代码与调用方式的前提下,为被装饰对象添加新功能。 我们来看一小段的代码:impo...
2018-04-12 15:37:36
761
原创 约瑟夫问题
约瑟夫问题:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数, 数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列class Child(object): first = None def __init__(self,no=None,pNe...
2018-09-03 20:29:54
376
原创 定义一个链表的小例子
定义一个链表实现英雄的排行榜class Hero(object): def __init__(self, no=None, nickname=None, name=None, pNext = None): self.no = no self.nickname = nickname self.name = name s...
2018-09-03 20:28:45
850
原创 四种必知的排序算法(冒泡排序,选择排序,插入排序,快速排序)
li=[13,2,7,43,22,15,8,3,23]#冒泡排序def bubbleSort(li): for i in range(len(li)-1): for j in range(len(li)-i-1): if li[j]>li[j+1]: li[j],li[j+1]=li[j+1],li[...
2018-09-03 20:28:17
443
转载 一次完整的HTTP请求过程
一、 HTTP请求和响应步骤 图片来自:理解Http请求与响应以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。二、TCP/IP协议TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核...
2018-09-02 23:05:33
349
原创 在CentOS7上用nginx+uwsgi部署一个Django项目
安装依赖环境yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel下载Python3 wget https://www.python.or...
2018-08-27 17:05:55
417
原创 pymongo操作MongoDB数据库
开始操作导包import pymongo建立连接字符串:mongo_conn = pymongo.MongoClient(host="127.0.0.1",port=27017) #建立连接mongo_db = mongo_conn["ss1db"] #选取数据增删改查查询:res = mongo_db.student.find({"nam...
2018-08-23 20:54:41
453
原创 MongoDB的数据常用操作
一、库操作show dbs查看当前服务器存在多少个DBuse ss1db 使用ss1db数据库,如果不存在就创建后使用show tables查看当前DB中所有的表(Collection)二、mongodb的数据存储结构:user = [{ name:monicx, age:23, gender:&amp;quot;m...
2018-08-23 20:24:21
222
原创 Flask+WebSocket 实现群聊与单聊功能
群聊py文件from flask import Flask ,request,render_templatefrom geventwebsocket.websocket import WebSocket,WebSocketErrorfrom geventwebsocket.handler import WebSocketHandlerfrom gevent.pywsgi...
2018-08-21 21:00:08
6484
1
原创 Flask 入门整理笔记
1.创建Flask实例 第一Hello from flask import Flask app=Flask(__name__,static_folder=,static_url_path,templates_folder=) @app.route(&quot;/&quot;,methods=[&quot;GET&quot;,&quot;POST&quot;],endpoint=&am
2018-08-21 20:34:12
309
原创 (Django) 认证组件小例子
使用django auth认证去实现用户登录,注册,修改密码,退出。其中只用登录后才能修改密码和进入首页。model.py#认证的用户表继承的是AbstractUser不是AbstractBaseUserfrom django.contrib.auth.models import AbstractUserclass UserInfo(AbstractUser): pho...
2018-08-08 23:56:16
239
转载 REST framework 的解析器
解析器REST framework 包含许多内置的解析器类,允许接受各种媒体类型(media types)的请求。还支持自定义解析器,这使你可以灵活地设计 API 接受的媒体类型。如何确定使用哪个解析器视图的有效解析器集始终定义为类列表。当访问 request.data 时,REST framework 将检查传入请求的 Content-Type ,并确定使用哪个解析器来解析请求内...
2018-08-02 18:53:53
809
原创 (Django) ORM
一般操作必知必会的十三条1、反回QuerySetall():查询所有结果filter():包含了与所给筛选条件相匹配的对象excluede():包含了与所给筛选条件不匹配的对象order_by(): 对查询结果进行排序reverse(): 对查询结果反向排序,请注意reverse()通常只能在具有已定义顺序的QuerySet上调用(在model类的Meta中指定order...
2018-07-31 16:10:18
777
转载 css实现整个表单只读 form readonly
我说的方法只需要给表单加上一个类,就可以让表单只读。&lt;form class="form-readonly"&gt;&lt;/form&gt;方法1: 用:before给form做个看不见的蒙版,遮住下面所有的元素,使之不响应任何事件.form-readonly{ position: relative;}.form-readonly:before{ co...
2018-07-24 20:52:20
3685
原创 (python)生成器
一、生成器 在python中,生成器是一种特殊的迭代器,内部支持生成器协议,不需要明确定义__iter__()和__next__()方法。生成器通过生成器函数产生,生成器函数可以通过常规的def语名来定义。 函数内包含有yield关键字,调用函数就不会执行函数体代码,拿到的返回值就是一个生成器对象。 生成器本质就是迭代器,也就是说生成器的操作法其实就是迭代器一样。...
2018-07-23 10:50:54
386
原创 (python)迭代器
一、迭代器迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来。在了解迭代器到之前先了解一个概念,即什么是可迭代的对象。可迭代的对象就是在python中,但凡内置有__iter__方法的对象,都是可迭代对象。如str字符串,list列表,tuple元组,dict字典,set集合,file文件,这些都是可迭代对象。迭代器对象是要求支持迭代器协议的对象,在python中,支持迭代器协...
2018-07-19 21:18:03
219
原创 小白学编程要知道的计算机基础
一、编程与编程语言1、什么是编程语言?简单的来讲编程语言就是一门语言,程序员用它来与计算机来沟通。2、什么叫编程?编程就是程序员用计算机能题解的表达方式,把程序员的思想辑写下来,编程出来的东西就是一堆文件。3、那为什么要用编程?让计算机按照人的逻辑执行程序,取代人力。二、完整的机算机系统有哪些部分构成?由机算机硬件、操作系统、和应用软件构成计算机系统。三、机算机...
2018-07-17 18:06:21
1992
1
原创 学liunx必知必会的50个命令
一、常用系统工作命令(10)1、echo命令echo命令用于在终端输出字符串或提取一个变量的值。格式为“echo[字符串|$变量]”。2、data命令data命令用于显示及设置系统的时间或日期,格式为“data[选项] [+指定的时间格式]”。记住%Y年,%m月,%d日,%H时(24),%I时(12)%M分,%S秒,%J(今年的第几天)。3、reboot命令reboot命令用于重启系统。格式为re...
2018-07-07 11:33:32
249
原创 Django的模版系统相关内容
一、常用语法只需要记两种特殊符号:{{ }} 与 {% %}变量相关的用{{ }}逻辑相关的用{% %}1、变量{{变量名}}变量名由字母数字和下划线组成。(.)点在模板中有特殊的含义,用来获取对象相应的属性值。views.py中写下以测试代码from django.shortcuts import render# Crea...
2018-07-06 00:02:09
218
原创 Django模版语言inclusion_tag的用法。
inclusion_tag。它多用于一个HTML片段的。例如我写的一个BBS项目中。一个博主的主页面的左侧栏和查看博主某篇文章的页面的左栅栏的一样的。为了不用重复写同样的代码。且提高页面的扩展性。我的bbs的左侧栏就用了inclusion_tag来实现。首先要在项目的:在项目blog这个app下面创建一个templatetags文夹。这个文件夹的名字必顺是templatet...
2018-07-05 20:57:39
4029
1
原创 Django 创建一个子路由
1、首先:2、在子路文件下定义路径:from django.conf.urls import urlfrom blog import viewsurlpatterns = [ url(r'(.*)/$',views.home),]3、在项目的路由中from django.conf.urls import urlfrom django.contrib imp...
2018-07-04 23:29:03
1449
原创 AJAX
AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,可以是JSON)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。 AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分...
2018-06-28 16:44:08
442
原创 JSON
什么是JSON? 1、JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) 2、JSON 是轻量级的文本数据交换格式 3、JSON 独立于语言 4、JSON 具有自我描述性,更易理解 JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持...
2018-06-27 23:40:29
308
原创 服务端防止大规模的恶意请求
模拟一个客户端恶意请求服务器,如果在1分钟内请求了1000次,就将这个客户端的ip给禁了!我们自定义一个中间件from django.utils.deprecation import MiddlewareMixinfrom django.http import HttpResponseimport datetimeHISTORY = {}BLACK_LIST=[]class Thr...
2018-06-27 11:04:55
4199
1
转载 PEP8 Python 编码规范
代码编排缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。文档编排模块内容的顺序:模块说明和docstring—import—globals&co...
2018-06-26 16:43:39
173
原创 (Django)中间件
什么是中间件?官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方...
2018-06-26 15:53:56
479
原创 Django中cookie和session笔记
Cookie 1. 下定义: 保存在浏览器端的键值对 2. 用处: 1. 登录 2. 记住密码/7天免登录 3. 用户浏览习惯(每页显示10条) 4. 简单的投票限制 3. Django操作Cookie 1. 设置Cookie req = HttpResponse("OK") req.set_cookie("key", "value") # 设置加...
2018-06-26 14:24:49
300
原创 可套用的分页
跟据上一篇的分页内容进行一个改进,好让以后写不同的分页的内容,不用从头写,只要拿过来用就好了。自定义一个工具包utils在具下面创建一个mypage.py文件,在里面定义一个用于分页的类:class Page(object): """ 这是自定义分页类 可以实现Django ORM数据的分页展示 使用说明: from utils impo...
2018-06-25 18:40:49
302
原创 分页
创建一个表from django.db import models# Create your models here.class Book(models.Model): title=models.CharField(max_length=16) publish_date=models.DateField(auto_now_add=True)向表中插入1000条数据import ...
2018-06-25 17:07:18
147
转载 mysql数据库面试题
01. 列举常见的关系型数据库和非关系型都有那些?1.关系型数据库通过外键关联来建立表与表之间的关系,---------常见的有:SQLite、Oracle、mysql2.非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定 ---常见的有:MongoDb、redis02. MySQL常见数据库引擎及比较? MyISAM:默认的MySQL插件式存储...
2018-06-23 22:18:47
4317
转载 Mysql常见的存储引擎及比较
ISAM:ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,M...
2018-06-23 21:18:47
2781
原创 Django里使用ORM四步骤
事先创建好数据库,然后进行以下操作:一、首先让Django得知道连接哪个数据库。在settings.py文件中配置:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '', 'HOST': '127.0.0.1', 'PORT': 3306, 'USER': 'roo...
2018-06-12 23:26:20
591
原创 Django基础必备三神装(HttpResponse、render,、redirect)
在使用三神装的时候,首先当然是得要导入它们:from django.shortcuts import HttpResponse, render, redirect1.HttpResponse它是作用是内部传入一个字符串参数,然后发给浏览器。例如:def index(request): # 业务逻辑代码 return HttpResponse("OK")2...
2018-06-12 17:01:36
44670
原创 了解Django框架,建一个Django项目
Python Web框架分类功能分类:A: 收发消息相关(socket)B: 根据不用的URL执行不同的函数(业务逻辑相关的)C: 实现动态网页(字符串的替换)Web框架分类:1. 自己实现B、C、使用第三方的A --> Django2. 自己实现B,使用第三方的A和C --> Flask...
2018-06-12 16:26:20
538
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人