
python
rennan…
这个作者很懒,什么都没留下…
展开
-
python with连接MySQL数据库
class DB(object): def __init__(self, args_1, args_2, database): setting = { "host": args_2.split(":")[0], "port": int(args_2.split(":")[1]), "user": args_1.split(":")[0], "password": args_1.split原创 2021-03-29 18:03:55 · 1359 阅读 · 0 评论 -
python自动生成MySQL表结构word文档
注意点:设置表格样式,具体可以查看python-docx的表格样式库table.style = 'Table Grid'import argparseimport pymysqlfrom pymysql import OperationalErrorfrom docx import DocumentReportSql = """SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, IS_NULLABLE 是否为空, COLUMN_KEY 约束条件,原创 2021-03-29 18:01:44 · 633 阅读 · 0 评论 -
python matplotlib柱状图中文显示
原因是因为字体指定问题,这里就讲如果没有字体如何引用环境:ubuntupython:3.6首先使用如下命令,发现并没有中文字体fc-list :lang=zh下载字体sudo apt install ttf-wqy-microhei然后使用命令查看该字体的路径fc-list :lang=zh有了路径后将字体粘贴到项目内(为了方便部署),然后设定matplotlib字体的路径(注意路径写对)font = FontProperties(fname=r"wqy-microhei.ttc")原创 2021-03-24 18:51:55 · 1315 阅读 · 0 评论 -
快速生成sqlalchemy的model
安装所需模块pip install sqlacodegen自动生成使用该命令sqlacodegen mysql://root:root@127.0.0.1 :3306/mydb > models.py原创 2021-03-02 15:45:16 · 552 阅读 · 0 评论 -
python使用日志(logging)模块
python使用logging模块#!/usr/bin/env python3# -*- coding: utf-8 -*-import datetimeimport osimport loggingimport threadingimport pytzdef beijing(sec, what): beijing_time = datetime.datetime.now(pytz.timezone('Asia/Shanghai')) return beijing_tim原创 2021-02-26 16:43:57 · 206 阅读 · 1 评论 -
flask将MySQL数据存储到csv并返回前端(flask-excel 踩坑)
安装flask-excelpipi install flask-excel按照自己的需求修改dome就好了# domefrom flask import Flask, request, jsonifyimport flask_excel as excelapp = Flask(__name__)@app.route("/download_file_named_in_unicode", methods=['GET'])def download_file_named_in_unicode(原创 2020-11-11 11:31:42 · 825 阅读 · 0 评论 -
将SQLalchemy的数据库类模型映射到MySQL数据库中
因为服务器挂掉MySQL数据库的表都没了,一个一个建表太麻烦下面介绍关于SQLalchemy的模型类如何映射到MySQL数据库# 直接可以在models.py中操作from sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy import Columnfrom sqlalchemy.types import String, Integerfrom sqlalchemy.ext原创 2020-11-11 11:05:30 · 489 阅读 · 0 评论 -
flask-sqlalchemy模糊查询
类模型.query.filter(类模型.字段.like("%查询条件%"))原创 2020-09-28 17:52:11 · 3266 阅读 · 0 评论 -
python报错:Max retries exceeded with url
问题:请求太频繁解决:s = requests.session()s.keep_alive = False如果不行可以去更新一下requestspip install --upgrade requests原创 2020-09-01 19:53:25 · 611 阅读 · 0 评论 -
docker创建Ubuntu镜像并配置python3和pip3
1、拉取ubuntu镜像docker run -d --name 镜像名 --network host ubuntu:18.04 tail -f /dev/null参数解释:-d 后台运行–name 该镜像的标识(特别重要)–network host 连接本机的网络地址ubuntu:18.04 我选择下载的ubuntu镜像版本tail -f /dev/null 让容器一直执行某条命令,以免没有任务而自动退出2、启动并进入ubuntu容器更新apt-getapt-get update原创 2020-08-31 09:52:07 · 1322 阅读 · 0 评论 -
SyntaxError: Non-UTF-8 code starting with ‘\xe9‘ in file C:/Users/Administrator/www/celery_task/clea
运行脚本时报错:SyntaxError: Non-UTF-8 code starting with ‘\xe9’ in file原因:程序出现中文,导致报错,根源就是编码问题解决:页面第一行加上# -*- coding:utf-8 -*-原创 2020-08-05 14:40:23 · 4790 阅读 · 3 评论 -
python中导出安装项目所依赖模块(pipreqs)
下载pipreqspip install pipreqs导出/安装项目依赖模块cd 项目根目录输入命令导出依赖pipreqs ./ --encoding=utf8安装pip install -r requriements.txt导出/安装所有的模块导出pip freeze > requriements.txt安装pip install -r requriements.txt...原创 2020-08-03 17:13:15 · 462 阅读 · 0 评论 -
python中的模块typing
前言很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种现象就变得更加的严重,而typing这个模块很好的解决了这个问题。typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支持typing检查typing模块的作用:类型检查,防止运行时出现参数和返回值类型不符合。作为开发文档附加说明,方便使用者调用时传入和返回参数类型。该模块转载 2020-07-23 14:00:30 · 465 阅读 · 0 评论 -
Django中的信号及自定义信号
Django中提供了"信号调度",用于在框架执行操作时解耦.一些动作发生的时候,系统会根据信号定义的函数执行相应的操作Django中内置的signalModel_signalspre_init # Django中的model对象执行其构造方法前,自动触发post_init # Django中的model对象执行其构造方法后,自动触发pre_save # Djan转载 2020-06-30 14:19:12 · 352 阅读 · 0 评论 -
python中数据类型的底层实现
Str(字符串)通过紧凑数组 实现字符串的存储, 字符串数据在内存中是连续存放的,空间利用率高原因是:每个字符的大小是固定的,因此一个字符串的大小也是固定的,可以分配一个固定大小的空间给字符串。同为序列类型,为什么列表采用引用数组,而字符串采用紧凑数据虽然同为序列类型,但列表可以存储的元素类型是多种多样的,并且列表是可变的,无法预估内存空间,所以列表不能通过紧凑数组。List(列表)Python中的列表是由对其它对象的引用组成的连续数组。指向这个数组的指针及其长度被保存在一个列表头结构中。这意味原创 2020-06-26 21:31:52 · 591 阅读 · 0 评论 -
面试题:def num(): return [lambda x: i * x for i in range(4)] print([m(2) for m in num()])
根据代码写出运算结果def num(): return [lambda x: i * x for i in range(4)]print([m(2) for m in num()])首先看到这道题后经过自己在脑子中的演算,想了一下直接得出答案不就是[0,2,4,6]嘛,结果结果自己在解释器里运行一遍发现结果居然是[6,6,6,6],结果也是没想到呀。我们先把lambda函数先变为普通函数这样比较好理解def num(): sub = [] for i in range(原创 2020-06-25 12:19:04 · 5825 阅读 · 4 评论 -
python中的GIL锁和互斥锁
Python中的GIL锁在Python中,可以通过多进程、多线程和多协程来实现多任务。在多线程的实现过程中,为了避免出现资源竞争问题,可以使用互斥锁来使线程同步(按顺序)执行。但是,其实Python的CPython(C语言实现的)解释器上有一把GIL锁,也就是说Python的程序是处于一个解释器锁的环境中的。一、GIL介绍GIL (Global Interperter Lock) 称作全局解释器锁。GIL并不是Python语言的特性,它是在实现Python解释器时引用的一个概念。GIL只在CPy原创 2020-06-22 15:31:09 · 419 阅读 · 0 评论 -
同步异步和阻塞非阻塞及实例
前言在这之前对于同步异步和阻塞非阻塞的概念都很模糊,今天通过这篇博客来彻底了解实例原创 2020-06-21 15:58:46 · 607 阅读 · 1 评论 -
django中实现全文检索(haystack+jieba+whoosh)支持中文
什么是haystack?haystack是django的开源搜索框架,该框架支持Solr,Elasticsearch,Whoosh, Xapian搜索引擎,不用更改代码,直接切换引擎,减少代码量。什么是jieba?很多的搜索引擎对中的支持不友好,jieba作为一个中文分词器就是加强对中文的检索功能什么是whoosh?Python的全文搜索库,Whoosh是索引文本及搜索文本的类和函数库Whoosh 自带的是英文分词,对中文分词支持不太好,使用 jieba 替换 whoosh 的分词组件。配置原创 2020-06-21 11:43:21 · 569 阅读 · 0 评论 -
python中的静态方法,类方法和实例方法的实现以及应用场景
在python的类中有三种常见的方法静态方法,类方法和实例方法,本文讲讲他们如何实现以及他们谁能进行调用静态方法实现:@staticmethoddef static(): pass定义:参数随意,使用装饰器@staticmethod,静态方法中不能调用类方法属性和实例方法属性调用:实例对象和类对象都可以调用使用场景:一般用于一些计算或者一些逻辑性的东西,因为方法体内部不能调用类方法属性和实例方法属性类方法实现:@classmethoddef static(cls): pass原创 2020-06-12 00:10:47 · 548 阅读 · 0 评论 -
djano使用Django-crontable来实现定时任务
安装pip install django-crontab使用场景定时去执行某些操作使用在settings.INSTALLED_APPS中添加应用:INSTALLED_APPS = [ 'django_crontab', # 定时任务]定时任务crontab的时间设置格式* * * * *分 时 天 月 周示例:每1分钟执行一次myCommand* /1* * * * myCommand每小时的第3和第15分钟执原创 2020-06-04 21:22:20 · 203 阅读 · 0 评论 -
python中的四个常用的高阶函数(map,filter,reduce,sorted)
什么是高阶函数定义:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数,如果参数为自己的话就是递归def A(func,num): return func(num) + 1def B(num): return numprint(A(B,1))输出结果:2python四大内置函数map参数说明:接收两个参数:一个函数和可迭代对象返回值:返回一个生成器生成器内容是将func依次作用域iter每个元素的处理结果test = ma原创 2020-06-02 23:41:19 · 292 阅读 · 0 评论 -
理解python中is和==的区别
简单来说is 就是去判断你内存地址是否相同而== 是去判断你变量值的相同不多bb上demo更好理解a = [1,2,3,4]b = [1,2,3,4]print(a is b)print(id(a))print(id(b))打印结果False19162519558481916251955912上面看是内容相等但是他在内存中的地址是不一样的,仅仅只是内容相等如果b引用了a的内存地址a = [1,2,3,4]b = aprint(a is b)print(id(a))p原创 2020-06-02 22:46:56 · 372 阅读 · 0 评论 -
django使用阿里云短信服务发送短信(详细教程)
阿里云短信服务首先找到短信服务添加签名和模板待签名和模板审核通过后就可以使用了注意得往里面充值(充一点就可以了),不然会出错发送短信下载模块pip install aliyunsdkcoredef phone_send(phone): # 生成验证码. code = '' for i in range(6): a = random.choice(range(10)) code += str(a) # 短信验证原创 2020-06-02 10:12:27 · 2194 阅读 · 0 评论 -
python的垃圾回收机制之引用计数
Python垃圾回收主要以引用计数为主,分代回收为辅。引用计数法的原理是每个对象维护一个ob_ref,用来记录当前对象被引用的次数,也就是来追踪到底有多少引用指向了这个对象增加引用对象a = 1 # 创建对象引用计数+1b = a # 引用对象引用计数+1func(a) # 作为参数传入函数 引用计数+1c = [a] # 作为容器里的对象时引用计数+1销毁引用计数del a # 删除该对象时引用计数-1b = c # 引用的对象不再引用他时引用计数-1fanc(a原创 2020-06-01 23:16:48 · 388 阅读 · 0 评论 -
关于python中的深拷贝和浅拷贝的总结
可变对象和不可变对象了解深拷贝和浅拷贝之前你得先知道什么时可变对象什么是不可变对象传送门深拷贝和浅拷贝拷贝不可变对象时import copya = 1b = copy.copy(a)c = copy.deepcopy(a)print(id(a))print(id(b))print(id(c)输出结果140714631783056140714631783056140714631783056当深拷贝和浅拷贝拷贝可变对象时a = [1,2]b = copy.copy(a)原创 2020-06-01 22:04:57 · 109 阅读 · 0 评论 -
python中的可变对象和不可变对象概念及实例
不可变类型(数字、字符串、元组、不可变集合)可变类型(列表、字典、可变集合)不可变对象对象所指向的内存中的值不能被改变,当改变这个变量的时候,原来指向的内存中的值不变,变量不再指向原来的值,而是开辟一块新的内存,变量指向新的内存。可以说成:变量对应的值中的数据是不能被修改,如果修改就会生成一个新的值从而分配新的内存空间。实例a = 'hello'print(id(a))a = 'hello' + 'word'print(id(a))输出结果:2598921794928259895原创 2020-06-01 20:41:04 · 383 阅读 · 0 评论 -
python的反射概念、理解和基本使用
什么是反射反射是一个很重要的概念,它可以把字符串映射到实例的变量或者实例的方法然后可以去执行调用、修改等操作。下面是反射的四个基本方法:getattr 获取指定字符串名称的对象属性setattr 为对象设置一个对象hasattr 判断对象是否有对应的对象(字符串)delattr 删除指定属性使用在test.py中创建三个函数def A(): print('我是A')def B(): print('我是B')def C(): print('我是C')在原创 2020-06-01 14:32:42 · 1302 阅读 · 0 评论 -
python中的新式类和经典类的定义及区别
继承模式新式类和经典类的主要区别呢就是类的继承:新式类呢是遍历广度,经典类呢是深度遍历遍历模式为:新式类定义class X1(object): # 新式类 passclass X2(X1): # 新式类 pass新式类多继承class X1(object): # 新式类 passclass X2(X1): # 新式类 passclass X3(X1): passclass X4(X2): pas原创 2020-06-01 00:38:46 · 383 阅读 · 0 评论 -
python如何实现一个简单的单例模式
单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,而这样会严重浪费内存资源,尤其是原创 2020-05-31 23:50:21 · 592 阅读 · 0 评论 -
python中的函数装饰器和类装饰器作用实现方法和应用场景
1、前言当你已经完成了一个接口功能,并已经投入使用之后,这时候你发现了这个这个接口还需要完成一些额外的功能(权限认证,计时功能,记录操作)等,但是很快你就发现加入这些代码之后一是感觉代码不够简洁,二是感觉不能提高代码的复用率感觉有点浪费,三是觉得再次加入后可读性不是很高,这时候装饰器就该映入你的眼帘了…2、闭包首先来看看闭包的实现外函数嵌套内函数内函数引用外函数里的变量外函数返回内函数光说这些可能不能理解来上代码def warp(a): # 外函数嵌套内函数 b = 2原创 2020-05-31 15:36:39 · 1172 阅读 · 0 评论 -
理解一下python中的可迭代对象,迭代器和生成器和他们的区别
使用dir()方法来查看可迭代对象,迭代器和生成器内部实现的方法__iter__方法: 返回自身__next__方法: 返回下一个元素a = [1,2,3,4,5]print(dir(a))print('-'*20)a = iter(a)print(dir(a))输出结果:可迭代对象内部实现了__iter__迭代器内部实现__iter__和__next__生成器的内部也实现__iter__和__next__...原创 2020-05-31 13:10:21 · 774 阅读 · 1 评论 -
通俗的来了解下python中的进程,线程和协程的关系和他们的区别
先来说说他们的定义进程进程是系统资源分配的最小单位一个正在运行的程序比如QQ,微信等就是一个线程进程之间的内存都是独立的,不能共享变量运行的开销也特别大线程线程是系统调度的最小单位同一个进程下的线程资源是共享的运行的开销较少协程协程在单线程下实现并发效果协程遇IO自动切换协程保留上一次调用状态运行的开销小进程,线程和协程间的关系的通俗描述现在有一家工厂想要生产某个商品:1、现在他要开一条流水线去生产这批商品,这时候这条为了生产商品而产生的流水线可以称之为进程 !原创 2020-05-30 12:57:16 · 224 阅读 · 0 评论 -
django查询的多种方法(模糊查询,时间的查询)
User.objects.filter(字段__) # 俩下划线__exact 精确等于 like ‘aaa’__iexact 精确等于 忽略大小写 ilike ‘aaa’__contains 包含 like ‘%aaa%’__icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。__gt 大于__gte 大于等于__lt 小于__lte 小于等于__in 存在于一个list范围内__st原创 2020-05-29 00:09:31 · 1598 阅读 · 0 评论 -
关于django的orm查询中时间字段查询
lt:小于queryset=yourobject.objects .filter(时间字段名称__lt=start)2、lte:小于等于queryset=yourobject.objects .filter(时间字段名称__lte=start)3、gt:大于某个时间now = datetime.datetime.now()#前一天start = now – datetime.timedelta(hours=23, minutes=59, seconds=59) start = now+原创 2020-05-28 09:53:22 · 2390 阅读 · 0 评论 -
在django实现联合唯一索引和联合索引
class Temp(models.Model): # 当前时间 timenow = models.DateTimeField() # 当前温度 temp = models.IntegerField() # 运单信息 consignment = models.IntegerField() class Meta: db_table = 'temp' unique_together = ('timenow','temp')原创 2020-05-27 14:49:31 · 2059 阅读 · 0 评论 -
如何在js中将一个对象变为一个数组
Object.keys :创建一个包含对象所有属性的数组生成一个将对象所有的key都拥有的数组const fruits ={ appple:22, pear:34, orange:88}var keys = Object.keys(fruits);console.log(keys); //["appple", "pear", "orange"]Object.values:创建一个包含对象所有属性的数组生成一个将对象所有的value都拥有的数组const fruit原创 2020-05-25 19:51:15 · 6119 阅读 · 2 评论 -
django中外键参数on_delete
django中model.py# 报警表class Police(models.Model): # 货物类型(w) cargo = models.models.ForeignKey(Cargo,on_delete=models.CASCADE) class Meta: db_table = 'police'外键中的on_delete例如上面on_delete=models.CASCADE代表的是当关联表中的数据删除时,该外键也删除还有几种情况:原创 2020-05-25 16:02:23 · 1237 阅读 · 0 评论 -
dajngo报错:AttributeError: Query object has no attribute contains_column_references
报错代码:tag = Tags.objects.filter(tag=tag)if not tag: t = Tags(tag=tag,cargo=cargo,create_user=create_user,cdistr_user=cdistr_user) t.save() return Response({'code': 200, 'message': "添加成功"})else: return Response({'code':403,'message':"标签ID不原创 2020-05-24 13:31:46 · 1379 阅读 · 0 评论 -
使用递归算法在django上实现一个对自关联评论表的无限极评论封装
给定一个课程的id 返回课程下的评论(无限极)class Coouser_Comments_View(APIView): def get(self,reqeust): course_id = reqeust.GET.get('course_id') course_comments = CourseComments.objects.filter(course_id=course_id) data = CourseComments_Ser(course_com原创 2020-05-23 21:21:17 · 477 阅读 · 0 评论