- 博客(41)
- 收藏
- 关注
原创 postgres创建只读用户
创建只读角色CREATE ROLE readaccess;授予对现有表的访问权限GRANT USAGE ON SCHEMA public TO readaccess;GRANT SELECT ON ALL TABLES IN SCHEMA public TO readaccess;授予后面新增表的访问权限ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readaccess;创建用户C.
2022-03-24 18:27:55
372
原创 postgres 基本操作
postgres删除大量数据当数据库在有约束的情况下,无论进行删除或者更新操作,都会对相关表进行一个校验,判断相关表的相关记录是否被删除或者更新。在删除大量数据时,可以先禁用触发器,然后再进行删除。最后再优化一下表空间1.禁用触发器ALTER TABLE table_name DISABLE TRIGGER ALL;2.DELETEDELETE FROM table_name WHERE ...3.启用触发器ALTER TABLE table_name ENABLE TRIGGER ALL;
2021-05-14 14:30:53
669
原创 centos7 安装frp内网穿透
一、安装服务端找一台云服务器。下载frpwget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz解压tar -zxvf frp_0.35.1_linux_amd64.tar.gz修改frps.ini文件[common]# frp监听的端口,默认是7000,可以改成其他的bind_port = 7000# 授权码,请改成更复杂的token = 12345678
2021-03-16 10:27:05
1886
原创 centos7内网部署docker服务、nginx、镜像
第一步,安装docker下载docker安装文件https://download.docker.com/linux/static/stable/x86_64/将文件上传至内网服务器,解压tar -xvf docker-19.03.6.tar将解压的文件cp到/usr/bin/cp docker/* /usr/bin/将docker配置为服务。开机启动vim /etc/systemd/system/docker.service[Unit]Description=Docker Appli
2021-03-08 10:46:25
779
原创 python读写excel文件的基本操作
读操作import xlrddef test1(file_name): # 获取文件中第一个sheet表 sheet = xlrd.open_workbook(file_name).sheets()[0] # 该表总函数 nrows = sheet.nrows for x in range(1, nrows): row = sheet.row_values(x) # 除了表头,依次读出每行 print(row)
2021-03-08 09:54:40
137
原创 索引
一、索引 (只总结例子和场景,在其中倒退原理)概念:对数据库表中一个或多个列的值进行排序的结构。通过某规则数据结构和实际目标关联,根据特定规则算法快速寻找目标的功能一些总结其中主键索引会在创建主键时自动创建聚集索引是指数据库表行中数据的物理顺序与索引顺序相同。一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况,所以,对应的聚集索引只能有一个。如果某索引不是聚集索引,则表中的行物理顺序与索引顺序不匹配,与非聚集索引相比,聚集索引有着更快的检索速度。一个没加主键的
2020-09-16 10:49:04
131
原创 django中的参数校验
正确的情况下,开始处理业务的时候,请求参数一定是合法的。就收到请求后,首先要做的是:1. 用户校验,2. 权限校验,3. 数据完整性校验,4. 数据合法性校验代码示例:from id_validator import validatorfrom django import formsimport jsonfrom django.views import Viewfrom django.http import HttpResponse, JsonResponsefrom django.ut.
2020-09-16 10:45:54
4028
1
原创 django中事务的使用
一、 概念 1. 一个事务可以是一条SQL语句,一组SQL语句或整个程序。 2. 属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并
2020-09-16 10:35:24
352
原创 “xxx”已损坏,无法打开,您应该将它移到废纸篓。
打开终端执行命令:sudo spctl --master-disable输入命令 (/Applications/xxx.app 是文件的位置,直接点开访达中应用程序,拖动该软件到终端即可)sudo xattr -r -d com.apple.quarantine /Applications/xxx.app
2020-09-10 15:09:02
1673
原创 mac pro 电池没有在充电
mac pro 插上电源显示电池没有在充电。外接显示器和鼠标都没有反应。并且拔掉还是充电状态,但显示电池没有在充电解决办法:关机拔掉电源,按住 shift + control + option + 开机键(指纹识别处)连续十秒,然后开机有些新款按任何键都会开机。不需要管他,就按十秒就可以...
2020-01-21 09:05:05
2015
原创 python 获取上月的月份,下月的月份,本月的天数,当天是星期几
一、获取今天是星期几和本月的天数import datetime, calendardef test1(): # 获取当前日期 now_time = datetime.datetime.now() # 获取当前时间的星期数和月数 week, days_num = calendar.monthrange(now_time.year, now_time.month) ...
2019-10-22 16:30:13
7144
原创 Request body exceeded settings.DATA_UPLOAD_MAX_MEMORY_SIZE.
完整的报错日志:ERROR 2019-09-24 09:27:23,160 scheme:https path:/asset/api/interface/ method:POST data:<QueryDict: {}>Traceback (most recent call last): File "/code/asset_apps/main/views/error_Trace...
2019-10-11 16:08:19
3049
原创 get_or_create()一条记录被创建了两次,Django多线程引发的Bug
在使用django多线程时引发的问题在使用多线程的时候,需要考虑数据库存储时间问题。多线程意味着django可以同时处理多个请求下面有一个情景:有一个用来存储数据的接口,逻辑是先利用主键判断这条数据是否已经存在,如果存在则返回“此数据已经存在”,否则存下来。某时候。同时收到两个完全一样的请求,要存贮的数据也完全一样。两个请求同时判断了数据是否已经存在,很显然,不存在,然后两个请求一起存储...
2019-10-11 16:07:37
819
原创 在使用cx_Oracle模块中文乱码
在使用cx_Oracle模块读取oracle数据中的中文数据的时候,返回值是????, 解决方案:查询之前加入环境配置import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' ...
2019-10-11 16:06:36
196
原创 Django--migrate失败:relation "user" already exists
migrate失败错误如下:django.db.utils.ProgrammingError: relation "user" already exists解决方式:python3 manage.py migrate mfxx (migrations文件) --fake-initial关于fake和fake-initial参数 以及其他的一些migrate可选用参数–fake...
2019-10-11 16:05:12
4373
原创 cx_Oracle中文无法显示
中文乱码在使用cx_Oracle模块读取oracle数据中的中文数据的时候,返回值是????,解决方案,在开头加上:import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' 如果是python2的话。还需要注意# -*- coding: utf-8 -*- 日期更新sysdateimport cx_o...
2019-10-07 14:21:58
192
原创 git基本操作命令
首先学习git建议看廖雪峰的git教程。学习成本很低。git init初始化一个仓库,cd到一个你想作为仓库的文件夹,使用git init命令。目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的git add 可反复多次使用,添加多个文件;git commit -m commit可以一次提交很多文件,所以你可以多次add不同的文件, -m后面输入的是本次提交的说明,可以输...
2019-10-07 11:45:17
119
原创 python 判断字符串是否含有数字和字母
str_1 = "123456"str_2 = "Abc"str_3 = "123Abc" #用isdigit函数判断是否数字print(str_1.isdigit())Tureprint(str_2.isdigit())Falseprint(str_3.isdigit())False #用isalpha判断是否字母print(str_1.isalpha()) F...
2019-10-04 19:39:26
37203
2
原创 python 判断是否为中文
\u4e00-\u9fa5 这两个unicode值正好是Unicode表中的汉字的头和尾。def is_chinese(word): for ch in word: if '\u4e00' <= ch <= '\u9fff': return True return False...
2019-10-03 17:06:09
1086
原创 Django开发,日常错误。
migrate失败错误如下:django.db.utils.ProgrammingError: relation "user" already exists在网上找的解决方式:python3 manage.py migrate mfxx (migrations文件) --fake-initial
2019-09-12 10:10:33
689
原创 Mac os上配置selenium
一. 环境python2.x&&python3.x谷歌游览器chromedriver : http://npm.taobao.org/mirrors/chromedriver/2.36/二. 配置导入selenium,这里使用了豆瓣源,速度很快pip install selenim -i http://pypi.douban.com/simple --truste...
2019-05-10 11:06:49
3357
原创 Django日志最方便的使用方法
1. 将middleware复制到utils下。middleware文件夹地址:链接:https://pan.baidu.com/s/1K6kkl6XouTPrqtpIN2obLg 密码:g6n52. setting配置下面配置实现记录异常文件,和正常的请求和返回数据的文件,以时间命名。comk_request_(时间).log' # 记录请求数据和返回数据comk_exception...
2019-05-09 11:19:32
699
原创 python实现保存Excel、读取Excel、将数据库中的数据导出到Excel
1. 保存前端传过来的二进制Excel文件import xlrdfile = self.request.FILES['excel_file']url = settings.BASE_DIR + '/static/files/' + file.namewith open(url, 'wb')as f: for data in file.chunks(): f.writ...
2019-05-06 14:31:35
4426
2
原创 Failed building wheel for psycopg2
我的错误:Command "/Users/qinlan/myproject/lenv1/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/l1/y1ch9__s6xx00p046b096_6m0000gn/T/pip-install-_p50tkoi/psycopg2/setup.py'...
2019-04-10 08:58:02
2488
原创 split和rsplit、strip和rstrip以及lstrip
split和rsplitsplit:从前往后分割,可以指定分割多少次。rsplit:从后往前分割,可以指定分割多少次。参数:sep:分隔符,可省略,默认是空格。count:分割次数,默认是分隔符的个数例如:s = 'asd dfdf ff's.split(' ',1)>>> ['asd', 'dfdf ff']s.rsplit(' ',1)>>>...
2019-04-09 09:11:53
1282
原创 Python中,等号后边用and判断数据完整性
For Instance:data = {'1': '一', '2': '二', '3': '', '4': '四'}test = data.get('1') and data.get('2') and data.get('3') and data.get('4')if test: print(True)else: print(False)>>>>...
2019-03-28 15:45:44
537
原创 Python中,if与elif的区别
首先是elif 是和if 一起用的,ifelif 中只能按顺序执行某一个,或者都不执行而两个if却是具有同样的优先级,因此是全部可以执行的。其实elif也可以理解成:否则的话··如果··a = 1b = 2if a: print(a)if b: print(b)>>>>>>12a = 1b = 2if a: pr...
2019-03-28 09:16:11
2470
转载 Django配置日志输出
django线上环境中的日志输出是相当重要的,它可以将所有的错误、警告、调试等重要信息全部输出到日志,这样便于维护和排查问题。首先先来看看实际中配置:settingsDEBUG = False #线上环境时要关闭debugALLOWED_HOSTS = ['*'] #线上环境时要允许所有ip访问,或有自己的规则#下面就是logging的配置LOGGING = { 'ver...
2019-03-27 12:21:24
2551
原创 关于settings.py被执行了两次
原因是开发模式下,通过python manage.py runserver的方式启动django项目的时候,会启动两个线程去加载settings文件,一个是用来给你服务的,一个是监控settings文件的改动的。启动的时候加一个参数。就只启动一个线程为你服务,而不在启动一个监控settings的线程了。...
2019-03-27 12:19:48
1012
2
原创 Mac上command not found: virtualenv
Mac上command not found: virtualenv我的问题是因为mac自带的python2.7,我自己安装的python3.6没有设置为默认版本。设置默认版本的方式如下:alias python=/usr/local/bin/python3.6后面的路径是python3.6的路径,如果不知道可以输入一下命令查询which python3.6然后检查python版本pyt...
2019-03-22 14:01:13
6845
4
原创 新手django+nginx+uwsgi,nginx启动失败问题
Failed to start A high performance web server and a reverse网上查了好多,但都没有解决,也不是端口占用。最后自己解决了。查看nginx状态。sudo service nginx status或者systemctl status nginx把所有的信息都读一遍就会发现惊喜,我的错误是少了一个大括号,错误信息会有提示。把英文仔...
2019-03-13 22:39:58
655
原创 数据库部分知识
MySQL锁有几种;死锁是怎么产生的;在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两 种基本的锁类型来对数据库的事务进行并发控制。死锁的第一种情况一个用户A 访问表A(锁住了表A),然后又访问表B...
2019-03-13 22:31:15
164
原创 网络基础
TCP(传输控制协议)在传输层,IP(互联网协议地址)在网络层TCP UDP区别;三次握手四次挥手;TCP协议: (在传输之前先建立连接)面向‘’(的通信服务):可靠地数据传输,无差错,无丢失,无重复 而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击用途:适用于传输内容比较大,网络情况比...
2019-03-13 22:28:47
69
原创 linux常用命令和git常用命令
Linux部分ls 显示文件或目录 ls -l 列出文件详细信息l(list) list -a 列出当前目录下所有的文件及目录,包括隐藏的a(all)mkdir 创建目录 mkdir -p 创建目录,若无父目录则创建p(parent)2.mkdir 创建目录 mkdir -p 创建目录,若无父目录则创建p(parent)3.cd 切换目录 ...
2019-03-13 22:25:46
555
原创 python面试题 算法排序
手写:已知一个长度n的无序列表,元素均是数字,要求把所有间隔为d的组合找出来,你写的解法算法复杂度多少;def func(x, d): L = [] n = len(x) if n < d: return None a = d while a < n: r = [] r.append(x[a...
2019-03-13 22:20:17
573
原创 python 面试题总结
python是强类型语言,因为他不允许不用类型的数据相加,又有说python是弱类型语言,因为变量声明的时候不需要加上类型,数据类型是由右边的值决定的。可变与不可变类型主要核心类型中,数字,字符串,元组是不可变的,列表,字典,集合是可变的。对不可变的类型重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象 (如果没有其他变量引用原有对象的话(即引用计数为0),原...
2019-03-13 22:15:18
161
原创 restful api 设计规范
1. 同一种数据的操作,只设置一个url路由,也就是根据请求方法的不同来区分处理逻辑。可以基于FBV来通过请求方法的不同,处理不同的逻辑,也可以基于CBV来实现。两种方式CBV更加简洁,不需要判断2. 域名为了对用户使用的url和网页中使用的接口api进行区别,(1)子域名的方式区分,例如:api.baidu.com/v1/login.json用户一看域名是以api开头的,就知道就接口...
2019-02-28 10:06:14
159
原创 分布式爬虫
分布式爬虫:概念将同一个爬虫程序放在多台电脑上(或者同一个电脑中的多个虚拟机环境),并且在多台电脑上同时启动这个爬虫。一个电脑运行一个爬虫程序称为单机爬虫。作用可以利用多台电脑的带宽,处理器等资源提高爬虫的爬取速度;原理分布式需要解决的问题:(共用的队列Queue和共用的去重集合set(),这两个是scrapy自身无法解决的问题。只能通过第三方组件。)a&gt; 需要保证...
2019-01-18 23:47:45
285
原创 scrapy部署爬虫项目
scrapy部署爬虫项目:功能:它就相当于是一个服务器,用于将自己本地的爬虫代码,打包上传到服务器上,让这个爬虫在服务器上运行,可以实行对爬虫的远程管理(远程启动爬虫,远程关闭爬虫,远程查看爬虫的一些日志)Scrapyd的安装pip install scrapy如何将本地的爬虫项目Deploying(打包),上传至scrapyd这个服务中。a. scrapyd提供了一个客户端工具,就是...
2019-01-18 23:47:14
205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人