- 博客(72)
- 收藏
- 关注
原创 基于Django的通用审核模块
文章目录前言一、基础代码1.模型层2.Serializers层3.ViewSet层一、使用步骤前言一般来说,管理系统都会有审核功能,即:普通用户发起申请,拥有审核权限的管理员审核申请的功能。为了避免重复造轮子,设计了一个通用的审核模块,适用于大部分场景。提示:以下是本篇文章正文内容,下面案例可供参考一、基础代码1.模型层通用模型代码如下:# -*- coding: utf-8 -*-import uuidimport loggingfrom django.conf import
2022-04-10 16:09:00 2362
原创 django-guardian基础教程一
文章目录前言一、django-guardian是什么?二、使用步骤1.安装2.配置总结前言Django默认提供的权限控制是基于模型级的,但是如果一个系统对于权限的控制比较复杂,模型级的权限控制是不满足需求的。django-guardian弥补了Django的权限控制的不足,它是基于对象级的权限控制,可能把权限控制得更加细致,从而应对复杂的系统。一、django-guardian是什么?Django默认提供的权限控制方式是基于模型级,而django-guardian提供了对象级的权限控制。二、
2022-03-05 14:42:51 1759 1
原创 pycharm报错:django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG
pycharm 的Django console运行时报错:django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessi
2022-02-27 13:39:28 2216 5
原创 基于Django+DRF实现长链接转短链接
1. 主要框架:Django == 3.2djangorestframework == 3.12.42. 实现思路:通过进制转换,把10进制转为62进制,能大大缩短字符串的长度;
2022-01-22 14:19:50 1158 1
原创 Mysql数据库增量式备份
需求:一般比较大型的项目,它的数据库的数据量可能高达几十G以上,如果每天都需要进行备份,就会消耗很大的磁盘空间,对于一些很少机会再使用的数据,可以不用每天都备份,一周备份一次就好。思路:既然标题说增量式备份,那就肯定不会直接mysqldump简单导出整个数据库,首先,把备份分成两种备份模式:完整备份和增量备份。完整备份:一周只备份一次,只备份要增量备份的那些数据表增量备份:每天都备份一次,这里比较复杂,下面详细说下面举一个例子,让大家更好地理解:假设有一个数据库叫OA,它有4个数据
2021-11-30 17:28:11 1390
原创 Django项目部署Nginx后静态文件报403状态码
问题:Django项目部署Nginx服务器后,静态文件禁止访问。原因:Nginx权限问题,没有指定某用户有权限读取静态文件夹内容。解决方案:vim /etc/nginx/nginx.conf把第一行的user xxx改为自己运行项目的用户,例如user root; 保存退出。运行service nginx configtest看看OK不OK,如果OK,执行service nginx reload和service nginx restart理论上就能正常访问了。...
2021-11-14 13:41:39 3619 1
原创 Django关于日期查询失效修复
在使用Django的ORM对数据进行查询时,查询是用到日期__date、__gte等失效,是由于Mysql设置导致的,执行下面语句就可以修复:mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
2021-09-26 13:49:22 335
原创 Ubuntu20.4 搭建OnlyOffice文档服务器
1.安装Dockersudo apt updatesudo apt install docker.iodocker --version安装OnlyOffice文档服务器sudo docker run -i -t -d -p 80:80 --restart=always onlyoffice/documentserver-deps:可以自定义服务器的端口,用自己开放的端口号替换<PORT_NUMBER>部分。sudo docker run -i -t -d -p <PORT
2021-09-17 17:51:55 3390
原创 python 按行处理大文件
一般我们读取文件,都是直接把文件的内容读取到内存中,然后再对其进行处理,但是如果文件很大,例如几个G甚至几百G,这时候使用读取到内存的方式就不行了,会直接导致内存溢出而卡机,这种情况,python中的yield就很好用,下面举个简单的例子,几行代码很好理解。def read_file(file_path): with open(file_path, 'r') as file: for line in file: yield lineif __n
2021-07-08 14:01:04 492
原创 Ubuntu20 安装Node.js v16.1
1. 官网下载二进制包地址:node-v16.1.0解压后,把文件夹移动到/usr/local/lib目录下,此目录需要root权限,可以在解压后所在的目录使用下面的命令移动到/usr/local/lib:sudo mv node-v16.1.0-linux-x64 /usr/local/lib接着配置路径,在.profile文件最后加上一行命令:打开文件:vim ~/.profile添加:export PATH=$PATH:/usr/local/lib/node-v16.1.0-lin
2021-05-15 22:50:42 796 1
原创 基于Django项目的增量式备份
备份# -*- coding: utf-8 -*-import loggingimport jsonimport osimport requestsimport datetimeimport reimport subprocessfrom django.conf import settingsfrom yz_lib.utils.qi_niu import QiNiufrom yz_lib.utils.others import sha1_filefrom django.db impo
2021-02-24 17:01:02 384
原创 selenium处理多个iframe的情况
需求/难题:在使用selenium框架的时候。如果遇到那种嵌套多个iframe的页面,会导致无法定位到想要的元素。解决办法: chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--ignore-certificate-errors') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument
2020-11-20 10:23:00 1547 1
原创 python PDF加水印/公章
1.开发思路:先把pdf转化为图片,再把图片进行合并或者叠加,最后把图片转化为pdf。2.代码:# -*- coding: utf-8 -*-import fitzimport osfrom django.conf import settingsfrom PIL import Image as pilImage__author__ = 'JayChen'class ProcessPDF: def __init__(self, pdf_path, pdf_name, pdf_o
2020-10-16 14:44:48 2620 1
原创 Django项目使用NGINX通过LDAP实现用户验证
关于利用Nginx实现Ldap统一认证,官方也给出了相关的文档和相应的示例代码。本文章是结合Django框架和简化认证过程。1. 安装Nginx中相应的模块实现Ldap登录主要用到Nginx的http_auth_request_module模块,旧版本的Nginx默认是不安装,可以通过命令行:nginx -V 检查一下是否有安装,没安装的自行百度安装。2. 实现原理建议大家先看两遍官方的博客,熟悉一下认证的过程。本文是简化实现的过程。首先从Nginx的配置文件入手,搞清楚配置文件到底什么意思。
2020-09-22 14:42:35 652
原创 Django实现微信小程序支付
1.下载相关的库微信官方已经提供了方便开发者的SDK,可是使用pip方式下载: pip install wechatpy2. 在项目的settings.py文件添加相关配置具体的参数需要自己到小程序微信公众平台和微信商户平台获取。WECHAT = { 'APPID': 'appid', # 小程序ID 'APPSECRET': 'appsecret', # 小程序SECRET 'MCH_
2020-09-02 14:25:07 1990
原创 Django aggregates简单用法。
利用Django的ORM框架实现数据库的聚合查询。1. 简单建一张数据表:class StatTable(models.Model): keyword = models.CharField(max_length=255, default=None) ranking = models.IntegerField(default=0) class Meta: db_table = 'stat_table'2. 简单介绍一下aggregates:Sum:求和C
2020-08-04 15:55:30 888
原创 supervisor中使用虚拟环境
如果还没有虚拟环境,首先自己创建虚拟环境,可以参考:python中virtualenvwrapper虚拟环境的安装和使用在自己项目的根目录下新建一个.conf文件,文件名自己取:mkdir supervisor.conf编辑文件:vim supervisor.conf[program:stat_table]command=/home/jay/.virtualenvs/Mproject_env/bin/python3 manage.py runscript stat_ranking --traceb
2020-08-03 16:40:19 1934
转载 Django_rest_framework中的FilterSet的简单使用
1.自定义一个FilterSet类:import django_filtersfrom app01 import modelsclass BookFilter(django_filters.rest_framework.FilterSet): publish = django_filters.CharFilter(field_name="publish__name") au...
2020-04-30 16:02:26 3631 1
原创 gitlab上加速运行Django项目测试代码
项目环境:python 3.6Django 1.11Coverage 5.0减少测试代码运行时间的方法:把单一的管道改为多管道并行,最后合并测试结果减少数据库迁移的次数具体做法:1、把测试代码拆分成四部分,分别放在不同的文件夹配置文件.gitlab.yml参考:stages: - test - resultPart_one: stage: test...
2020-03-09 11:52:47 239
原创 Django使用django_apscheduler定时任务
在写这篇文章之前,我已经查阅了网上大部分的资料,包括官方的文档,但是还是没有解决我遇到的问题,现在还不容易解决了问题,特意记录一下。问题:任务无法启动。完整教程:安装第三方库:pip install django-apscheduler在settings.py文件的INSTALLED_APPS中加入:INSTALLED_APPS = [ '...' 'django_apsche...
2020-02-05 20:05:29 2789 9
原创 python 中cls和self的区别
self:指的是一个具体实例的本身。如果在class中的某个方法加了@classmethod修饰器,那么这个方法不需要实例化也能直接被其他程序调用。cls:表示这个类本身。...
2019-12-27 13:48:56 865
原创 python内置函数issubclass()介绍
issubclass():格式:issubclass(object, subobject)object:子类;subobject:父类;作用:用于判断object是否为subobject的子类,如果是,返回True,否则返回False例子:class A: passclass B(A): pass print(issubclass(B,A)) #...
2019-12-26 17:44:31 276
原创 python的getattr()方法介绍
getattr():作用:返回一个对象的属性值。定义:getattr(object, name, default)object: 一个实例化的对象;name:这个实例化对象的属性名;default:默认值,当对象取不到属性值的时候,就会返回默认值,如果没有设置默认值,会报错 AttributeError。下面是菜鸟教程的例子:>>>class A(object)...
2019-12-26 00:53:22 815
原创 @property的基本使用
@property的作用:广泛用于类的定义中,把方法变成属性,保证对参数进行必要的检查,减少程序运行时出错的可能性。例子:class Student(object): @property def score(self): return self._score @score.setter def score(self, value): ...
2019-12-17 14:48:34 4872
原创 Client持久化的坑
Client.get()和Client.post()都会自动做持久化处理,在发送请求时,必须设置follow=True举个例子:def test_get(self):url = “/shop/”# 在用户没有登陆的情况下访问失败,返回302状态码response = self.client.get(url)self.assertEqual(response.status_code, s...
2019-12-16 09:05:06 138
原创 factory-boy创建manytomany伪数据
1.安装factory-boy库:pip install factory-boy本案例使用的是基于Django的ORM。新建两个model:Shipment:class Shipment(AbstractCommodityList, DateSlugMixin, DateListMixin, TrackingMixin): slug = models.CharField(_('...
2019-12-05 10:29:32 638
转载 lambda的基本使用
语法:lambda argument_list:expression特性:lambda函数是匿名的;lambda函数有输入和输出;例子:lambda x,y:x∗yx,y:x∗y;函数输入是xx和yy,输出是它们的积x∗yx∗ylambda:None;函数没有输入参数,输出是Nonelambda *args: sum(args); 输入是任意个数的参数,输出是它们的和(隐性...
2019-11-21 10:48:51 227
转载 python hasattr()方法的使用
描述:用于判断对象是否包含对应的属性。语法:hasattr(object, name)参数:object:–对象。name:–属性名字。返回值:如果对象中有这个属性,就返回True,否则返回False。实例:class Dog: name = Tomdog = Dog()print(dog, 'name')print(dog, 'age')输出结果:True...
2019-11-18 09:51:56 165
原创 Django单元测试
编写测试的流程:引入django提供的测试模块,例如TestCase;引入需要测试的类或者方法;自己构造一个单元测试的类,并且这个类要继承django提供的测试模板;def setUp(self): 测试前的准备工作,例如创建对象、连接数据库等;编写功能测试,例如我要测试homepage_view这个功能,那么我就要以test_开头定义一个方法,例如def test_homepage...
2019-11-13 11:42:03 106
原创 Django项目中使用JWT
1.requiremwnts:Django版本:2.2python版本:3.6djangorestframework版本:3.1djangorestframework-jwt版本:1.11MySQL版本:5.7注意:使用Django 2.1以上的版本,MySQL数据库必须在5.5以上的版本。2.新建项目1)使用pycharm新建一个Django项目,我的项目名称叫:django_j...
2019-11-03 17:01:06 795 1
原创 解决跨域问题
什么是跨域:当我们在前端项目通过网络请求从后端项目获取数据时,后端显示访问正常,没有任何报错,而在前端却收不到数据,还会出现报错。什么情况下会出现跨域问题:同一域名,不同端口;同一域名,不同协议;同一域名,不同子域;不同域名。前后端端项目数据交换过程(产生跨域问题情况):在前后端分离项目中,当我们在浏览器端输入网址时,浏览器会先向前端项目发送数据请求,然后前端项目向浏览器返回数...
2019-11-02 02:14:33 107
原创 Django的Restful api频率功能开发
在setting.py文件中添加频率限制的配置代码:REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ( 'rest_framework.throttling.AnonRateThrottle', 'rest_framework.throttling.UserRateThrottle' ), 'D...
2019-11-01 17:07:30 131
原创 python集合增加数据的操作方法
add():作用:增加一个数据到集合。集合的特点:数据是没有顺序的;数据不会重复;例子:s1 = {10,20,30}s1.add(40)print(s1)输出结果:{40, 10, 20, 30}update():作用:把序列增加到集合。例子:s1 = {10,20,30}s1.update([10,20,50])print(s1)输出结果:{10,...
2019-10-30 00:15:41 4243
原创 数据库封锁的概念
封锁机制中锁有两种:排他锁共享锁排他锁:如果事务T对某个对象加了排他锁,则系统只允许事务T对这个数据对象进行读取和更新,其他事务·都不能对这个数据对象加任何锁,直到事务T释放这个数据对象上的排他锁。共享锁:若事务T对某个对象加了共享锁,则系统只允许事务T对这个数据进行读取但不能更新,其他事务也能对这个数据对象加共享锁,而不能加排他锁,直到事务T释放共享锁。封锁机制的作用:解决丢...
2019-10-29 22:57:39 2511
原创 python3修改list
reverse():作用:把列表的所有元素的顺序倒转语法:列表.reverse()例子:my_list = ['a', 'b', 'c', 'd']my_list.reverse()print(my_list)输出结果:['d', 'c', 'b', 'a']sort():作用:排序,默认是升序语法:列表.sort()例子:my_list = ['a', 'c...
2019-10-27 14:44:11 321
原创 python3列表的删除操作
del:作用:删除指定的列表或者指定下标的列表的数据语法:del 列表名例子:list_test = ['xiaoming', 'xiaohong', 'xiaogang']list_test2 = ['a','b', 'c']del list_test2[0]del list_testprint(list_test2)print(list_test)输出结果:['b'...
2019-10-27 14:14:24 342
原创 python列表相关操作
insert():作用:在列表指定的位置插入数据。语法:列表.insert(位置下标,数据)例子:my_list = ['a', 'b', 'c']my_list.insert(2,'d')print(my_list)输出结果;['a', 'b', 'd', 'c']append():作用:列表结尾追加数据。语法:列表.append(数据)例子:my_list...
2019-10-27 01:29:13 95
原创 pyhon删除空白符
strip():可以删除字符串两端的空白符;rstrip():可以删除字符串右侧的空白符;lstrip():可以删除字符串左侧的空白符;举个例子:a = ' 我爱python 'b = a.strip()print(b)结果:我爱python...
2019-10-24 23:11:48 90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人