分页a.分页,看第N页,每页显示N条数据方式一:使用PageNumberPagination创建分页对象,配合settings全局配置 views设置 from rest_framework.pagination import PageNumberPagination class PagesView(APIView): def get(self,request,*args,**kwargs): #获取所有数据 m = models.UserInfo.objects.all() #创建分页对象 p…
方式一 1.settings设置 INSTALLED_APPS = [ ... 'rest_framework', ] 2.views设置 from rest_framework.response import Response class PagesView(APIView): def get(self,request,*args,**kwargs): ... ... return Response(ser.data) 方式二 1.urls: re_path(r'^(?P<version>[…
#以中间件方式解决API数据访问跨域问题1.API下新建文件夹下写PY文件a.引入内置类继承: from django.middleware.common import MiddlewareMixin class CORSMiddleware(MiddlewareMixin): def process_response(self,request,response): #添加响应头 #允许你的域名来获取我的数据,'*'也可以单独设置 response['Access-Control-Allow-O…
自动生成4个url路由:from rest_framework import routersrouter = routers.DefaultRouter()router.register(r'wrx',PagesView)urlpatterns = [ re_path(r'^(?P<version>[v1|v2]+)/',include(router.urls)),]生成的URLapi/ ^(?P<version>[v1|v2]+)/ ^wrx/$ [name='userinfo-…
渲染器:作用于页面,JSONRenderer只是JSON格式,BrowsableAPIRenderer有页面,.AdminRenderer页面以admin形式呈现(需要在请求地址后缀添加?fromat=admin)渲染器全局与局部配置方法全局配置: REST_FRAMEWORK = { #渲染器配置 'DEFAULT_RENDERER_CLASSES': ['rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.Bro…
满足两个要求,request.Post中才有值 1.请求头要求:请求头中的Content-Type为application/x-www-form-urlencoded 2.数据格式要求 name=x&age=xx&gender=x 如: a.form表单提交 <form methed..> input </form> b.ajax提交 $.ajax({ url:.. type:POST headers:{Content-Type:application/json}…
序列化方式一 :在业务类里序列化数据库数据 class RolesView(APIView): def get(self,request,*args,**kwargs): roles = models.Role.objects.all().values('id','title')[1:3] ret = list(roles) r = json.dumps(ret,ensure_ascii=False) return HttpResponse(r) 方式二:写个序列化的类,在业务类中引用,序列化类…
1.自己写: class UserView(APIView): versioning_class = ParamVersion def get(self,request,*args,**kwargs): v1 = request._request.GET.get('version') v2 = request.query_params.get('version') #获取结果是一样的,两种获取方式 print(v1,v2) 2.使用自带类: from rest_framework.version…
权限认证:1.项目下utils文件写permissions.py文件 from rest_framework.permissions import BasePermission class SVIPPermission(BasePermission): #用户权限类 message = 'SVIP才可以访问' #认证错误时的返回信息 def has_permission(self, request, view): ut = request.user.usertype if ut == 3: re…
1.节流自定义类: import time from api import models VISIT_RECORD = {} class VisitThrottle(BaseThrottle): #设置访问频率为60秒3次 def allow_request(self, request, view): #获取用户ID # remote_addr = request.META.get('REMOTE_ADDR') remote_addr = self.get_ident(request) ctim…
用户认证:1.项目下utils文件写auth.py文件 from rest_framework import exceptions from api import models from rest_framework.authentication import BaseAuthentication #还有4个类可以继承 class BasicAuthentication(BaseAuthentication) 可以弹出登录框 class SessionAuthentication(BaseAut…
用户POST登录-->后台验证用户名密码-->验证正确返回TOKEN-->验证错误返回错误信息 class UserAPI(APIView): #用户登录类 def post(self,request,*args,**kwargs): ret = {'code': 200, 'msg': None} try: #取前台数据 user = request._request.POST.get('username') pwd = request._request.POST.get('passw…
原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUnit 5 系列:条件测试 我的 Github:http://github.com/linesh-simplicity 上一节我们了解了 JUnit 新的扩展模型,了解了它是如何支持我们向引擎定制一些行为的.然后我还预告会为大家讲解条件测试,这一节主题就是它了. 条件测试,指的是允许我们自定义灵活的标准…
原文地址:http://blog.codefx.org/design/architecture/junit-5-extension-model/ 原文日期:11, Apr, 2016 译文首发:Linesh 的博客:「译」JUnit 5 系列:扩展模型(Extension Model) 我的 Github:http://github.com/linesh-simplicity 概述 环境搭建 基础入门 架构体系 扩展模型(Extension Model) 条件断言 注入 动态测试 ... (如果…
一.setting设置 1.设置 局域网可以部署连接 ALLOWED_HOSTS = ['*.besttome.com','192.168.1.100'] 2.static配置 STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), ) 3.后台中文配置 LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' 4.数据库配置 详见https://…
本系列前三章: http://www.cnblogs.com/CQ-LQJ/p/5604331.htmlPermission权限基本操作指令 http://www.cnblogs.com/CQ-LQJ/p/5609690.htmlUser权限基本操作指令 http://www.cnblogs.com/CQ-LQJ/p/5620490.html设计自有权限管理系统设计思路 正文: 权限管理界面分三部分:一个点击进入该页面的按钮.以及该页面的权限列表.添加按钮,删除按钮; 权限管理界面页面是最基础的…
若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ-LQJ/p/5604331.html 现在步入正题,这篇文章是关于自有权限管理系统设计的思路描述,自有权限管理系统是抛弃django自带的后台管理界面,基于自己编写的权限管理界面对用户权限的管理! 首先上图:(自己设计的权限系统界面,代码将后续文章中写出) 权限管理界面主要是添加和删除权限,查看官方…
Easy 461.汉明距离 因为原题目翻译效果不佳,这里是笔者自己的理解. 输入两个二进制数 x.y, 输出将 y 变为 x 所需改变的二进制位数,成为汉明距离. 注意: 0 ≤ x, y < 2e31. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 补充「位运算」 符号 描述 运算规则 & 与 两个位都为 1 时,结果才为 1 | 或 两个位都为 0 时,结果才为 0 ^ 异或 两个位相同为 0,相异为 1 ~ 取反…
原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Github:http://github.com/linesh-simplicity 2015年11月,Junit Lambda 团队发布了该项目的 第一版原型 .此后,该项目把名称改成了 JUnit 5 并独立了出来,随后在2016年2月份的时候发布了一个 alpha 版本.本篇打算以一系列文章,简短地探…
针对Django 后台自带的用户管理系统,虽说感觉还可以,但是为了方便用户一些操作,特别设计自定义的用户权限管理系统. 在制作权限页面前,首先需要了解权限和用户配置权限的指令,上章讲到权限的添加,删除,查询,本章介绍用户权限的操作指令. 首先需要导入Permission, User模块: from django.contrib.auth.models import Permission, User #用户 权限 添加权限: Permission.objects.create(name=u'权限管…
若需建立py文件进行测试,则在文件开始加入以下代码即可 #coding:utf-8 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.settings") ''' Django 版本大于等于1.7的时候,需要加上下面两句 import django django.setup() 否则会抛出错误 django.core.exceptions.AppRegistryNotReady: Model…
原文地址:http://blog.codefx.org/design/architecture/junit-5-architecture/ 原文日期:29, Mar, 2016 译文首发:Linesh 的博客:JUnit 5 系列:架构体系 我的 Github:http://github.com/linesh-simplicity 现在,我们已经知道了 如何配置 JUnit 5 环境 及 如何写一些测试,接下来就来看一点封面下的内容吧.本篇我们将讨论 JUnit 5 的架构体系,以及它之成形如此…
原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, Feb, 2016 译文首发:Linesh 的博客:JUnit 5 系列:基础入门 我的 Github:http://github.com/linesh-simplicity 上周我们刚刚搭建好了 JUnit 5 的环境,现在我们可以写测试了.这节就让我们来写它几个吧! 概述 本文章是这个 JUnit 5 系列的一部分: 环境搭建 基础入门 架构体系 扩展模型(Exten…
当一张表和多个表ForeignKey关联,并且多个FK中只能选择其中一个或其中n个时,可以利用contenttypes,只需定义三个字段就搞定! contenttypes 是Django内置的一个应用,可以追踪项目中所有app和model的对应关系,并记录在ContentType表中. 每当我们创建了新的model并执行数据库迁移后,ContentType表中就会自动新增一条记录.比如我在应用app的models.py中创建表class Electrics(models.Model): pass…
先做性能分析 - 两个工具 django.db.connection from django.db import connection# contextprint connection.queries# content''' result is:[{'time': '0.002','sql': u'SELECT `django_session`.`session_key`, `django_session`.`session_data`, `django_session`.`expire_dat…
1.setting配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #数据库驱动名 'NAME': 'my_test', #数据库名称 'USER': 'root', # 用户名 'PASSWORD': '123', #密码 'HOST': '127.0.0.1', #IP地址 'PORT': '3306', # 端口号 2.mysql8.x的错误及解决 错误:_mysql_exceptions.Operati…
Django内置email发送邮件 1.首先在settings.py文件设置相关参数 STATIC_URL = '/static/' # 设置邮件域名 EMAIL_HOST = 'smtp.163.com' # 设置端口号,为数字 EMAIL_PORT = 25 #设置发件人邮箱 EMAIL_HOST_USER = 'xxxxx@163.com' # 设置发件人 授权码 EMAIL_HOST_PASSWORD = '自己的授权码' # 设置是否启用安全链接 EMAIL_USER_TLS = Tr…
第一:命令安装xadmin2 pip install xadmin2 第二:setting.py中设置 INSTALLED_APPS INSTALLED_APPS = ( ... 'xadmin', 'crispy_forms', 'reversion', ... ) 第三:urls.py中设置 import xadmin xadmin.autodiscover() from xadmin.plugins import xversion xversion.register_models() ur…
适应于网页.文章等浏览次数统计 1.Models设置:添加viewed方法 class NewsTitle(models.Model): title = models.CharField(max_length=64,verbose_name='新闻标题') count = models.PositiveIntegerField(verbose_name='点击次数',default=0) src = models.ImageField(upload_to='www/',verbose_name=…
不提XXLJOB或者其他的调度框架,就看我接触的第一个任务调度框架Quartz(温故而知新) Quartz的动态暂停 恢复 修改和删除任务 实现动态添加定时任务,先来看一下我们初步要实现的目标效果图,这里我们只在内存中操作,并没有把quartz的任何信息保存到数据库,即使用的是RAMJobStore, 当然如果你有需要,可以实现成JDBCJobStore,那样任务信息将会更全面. 例如,我们要先列出计划中的定时任务以及正在执行中的定时任务,这里的正在执行中指的是任务已经触发线程还没执行完的情况.…