![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
等一杯清茶
一把陈壶,装上二月的新绿。岁月的炉火,烹煮云水涯。日子在茶中,波澜不惊。
展开
-
循环获取路径下所有文件
s原创 2022-10-12 14:31:06 · 252 阅读 · 1 评论 -
subprocess模块
subprocess模块subprocess是python内置的模块,这个模块中的Popen可以查看用户输入的命令行是否存在如果存在,把内容写入到stdout管道中如果不存在,把信息写入到stderr管道需要注意的是,这个模块的返回结果只能让开发者看一次,如果想多次查看,需要在第一次输出的时候,把所有信息写入到变量中。subprocess中的popen用法:Popen基本格式:subprocess.Popen(‘命令’, shell=True, stdout=subprocess.PIPE原创 2022-04-25 09:53:01 · 7068 阅读 · 0 评论 -
Python代码执行顺序
为什么要写这个呢,我觉得这个很重要,确切了解掌握这个知识点,有利于后边的装饰器、闭包的学习1.正常执行顺序,从上往下,从右往左(针对赋值)a = 1 # 1print(a) # 22.函数的执行过程,从上往下,先执行函数名,不执行函数内部,只有函数被调用时才执行def a(): # 1 print('a') # 4 def b(): # 2 print('b') a()原创 2021-12-13 17:14:03 · 3818 阅读 · 1 评论 -
yield关键字
迭代器定义: 迭代是Python最强大的功能之一,是访问集合元素的一种方式。本质: 迭代器本质是一个对象,是一个可以记住遍历的位置的对象。功能: 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完毕就结束。只能往前不能往后迭代器有两个基本方法: lter() # 创建迭代对象 next() # 迭代器的下一个元素特别说明: 字符串、列表或者元组都可以用于创建迭代器对象实例分析: list = [1, 2, 3, 4] lt = lter(list) #原创 2021-12-09 17:55:25 · 636 阅读 · 0 评论 -
cPython的GIL
GIL先声明一下,原本没打算写这么多,但是写着写着发现,需要解释的东西太多了,一个套一个,其实我现在总结的这一版还是没有完全到每一个细节,但是我想靠这些应该差不多了。我想了一下大概还有两个没讲,1.为什么还用GIL 2.垃圾回收机制什么是GIL?GIL是cPython解释器的特有技术术语,中文为全局解释器锁。因为在创建Python的时候只考虑到单核的cpuGIL的功能?GIL的功能就是:在执行Python线程的时候,先锁住自身线程,实现同一时间只允许执行一个进程。解决多线程之间数据完整性原创 2021-12-08 11:29:56 · 588 阅读 · 0 评论 -
解决post请求跨域请求第三方服务器
解决post请求跨域请求第三方服务器# 只是一个解决的方法,不是最完美的,但是能解决问题前端用vue,后端是django问题:将选择的参数数据,通过http通信,访问第三方服务器解决:按理说这是一个简单的http通信,只需要前端将参数数据,通过第三方服务器的API接口,发送过去就行了。 我遇到的问题是:首先这是一个post请求,需要解决跨域问题,因为平时都是通过后端引用corsheader第三方库设置解决跨域问题,但是这次访问的第三方的服务器,不是访问的django的后端服务器,导致这个方法原创 2021-10-21 14:53:43 · 1301 阅读 · 0 评论 -
记录django开发后,不能用ip方式访问
记录django开发后,不能用ip方式访问问题: 在pycharm中进行启动后,在网页是可以使用127或者localhost进行访问,但是不能使用ip进行访问 解决: 第一步:修改settings文件,ALLOWED_HOSTS = ['ip'] 第二步:不使用pycharm进行启动,使用终端进行访问,python manage.py runserver 0.0.0.0:8000 原因: 不使用pycharm是因为,pycharm中只是设置了runserver,如果只设置runserver原创 2021-09-18 10:15:36 · 526 阅读 · 0 评论 -
处理登录和首页是遇到的问题
处理登录和首页是遇到的问题技术:vue做的页面、python做的后端说明:后端没有借用django框架的登录逻辑,因为我设计的这个系统的用户角色多,而且自带的登录很繁杂问题1:(前端输入的信息,后端接收到为None)一定要看看,前端传的数据的格式是什么,后端根据前端规定的格式接收。我犯的问题是前端传递json,后端接收表单数据。 问题2:(为什么登录完成,页面不刷新) 我的问题是后端写好了,跳转的逻辑,但是前端没有写登录成功后的逻辑代码,导致不能跳转的首页。 问题3:(前后端传递和接原创 2021-07-13 15:49:26 · 270 阅读 · 0 评论 -
权限组件---rbac
权限组件—rbac什么是权限?对系统功能进行限制权限与应用权限可以应用于多个应用中用户、角色、权限不给用户直接分配权限,通过将用户分配角色,给角色分配权限一个包含正则表达式的url相当于一个权限用户登录成功后: 1.查询当前用户的所有权限 1.1查询用户的角色 ret = user.roles.all() 1.2查询角色对应的权限 ret = ret.values('permissions__url').distinct() permission_list = [原创 2021-06-18 14:16:55 · 225 阅读 · 0 评论 -
django中间件
中间件What?中间件是一个用来处理django请求与响应的框架级别的钩子,是一个轻量、低级别的插件系统。用于在全局范围内改变django的输入输出说白了,中间件就是一个类视图,类里边包含很多自定义的函数,这些函数的具体功能才是中间件实现的根本自定义函数process_request(self, request)process_view(self, request, view_func, view_args, view_kwargs)process_template_response(se原创 2021-06-17 15:05:41 · 80 阅读 · 0 评论 -
Python使用simpleui后,创建新用户时,密码为明文
Python使用simpleui后,创建新用户时,密码为明文如果使用django的后台,创建一个后台的管理系统,在涉及到用户登录、用户注册这方面的时候,完全不用自己创建视图函数,django的admin自己有登录与注册的方法,只需要进行相关的配置就行。首先是创建model: 省略 配置admin,为model进行注册配置:(密码明文的问题就是出现在这里没配置完全) from apps.users.models import User from django.contrib.auth.admi原创 2021-04-22 14:15:22 · 777 阅读 · 0 评论 -
Python将pgm后缀图片替换成jpg格式
Python将pgm后缀图片替换成jpg格式def pgm_tojpg(img_name): """pgm转换成jpg""" img = Image.open(MEDIA_ROOT + '/maps/' + img_name) img_name = img_name.split('.')[0] new_img_path = 'maps/' + img_name + '.jpg' img.save(MEDIA_ROOT + '/maps/' + img_name +原创 2021-04-19 10:28:44 · 570 阅读 · 0 评论 -
django--外键和表数据的操作
django–外键和表数据的操作外键和表—添加数据向多方表中添加数据:(多表中有一个字段是外键) O = One.objects.get(id=xxx) T = Two.objects.create(name="xxx", 外键_id=O.id)外键和表—查询数据查询多表中的数据:(一查多) O = One.objects.get(id=xxx) O.two_set.all() 查询一表中数据:(多查一) T = Two.objects.get(id=xxx) T.外建原创 2021-04-19 10:14:12 · 821 阅读 · 0 评论 -
django字段
django字段AutoFieldBooleanField True、FalseNullBooleanField Null、True、FalseCharField max_lengthTextField IntegerFieldDecimalField max_digits表示总位数,decimal_places表示小数位数FloatField DateField原创 2021-04-08 14:30:44 · 147 阅读 · 0 评论 -
django新项目创建mysql数据库几个注意事项
django新项目创建mysql数据库几个注意事项不分前后,暂时这么多,后续再补充吧1.安装pymysql包pip install pymysql==0.10.1 -i https://pypi.tuna.tsinghua.edu.cn/simple2.在项目的init文件中,引入pymysqlimport pymysqlpymysql.install_as_MySQLdb()3.创建数据库,一直要事先指定好格式(django.db.utils.DataError: (1366, "In原创 2021-03-19 14:52:20 · 85 阅读 · 0 评论 -
点击左侧动态列表,在右侧动态生成内容
点击左侧动态列表,在右侧动态生成内容原本我打算在生成动态详情的时候,借助jQuery的ajax异步刷新机制,在指定的区域生成从后台获取到的动态数据,但是,在后台将数据传递给前端后,数据的类型改变了,实在是想不通,还有就是不知道怎么处理回调成功后获取到的数据(也就是不知道后台拿到的数据怎么写到模板里),导致我只能选择另一种方式iframe后台生成左侧的菜单列表数据def get_industry_list(request): """获取行业列表""" industry_list = I原创 2021-03-11 16:06:33 · 476 阅读 · 0 评论 -
django分页
django分页# 官方文档https://docs.djangoproject.com/en/3.1/topics/pagination/需要用到Paginator模块from django.core.paginator import Paginator实例# 先创建model# 后端代码from django.core.paginator import Paginatordef get_list(request, pindex): lists = xxx.object原创 2021-03-09 14:46:32 · 300 阅读 · 1 评论 -
文章点赞、浏览量
文章点赞、浏览量点赞和浏览量其实就是牵扯一个自加,当新打开文章或者刷新页面都要自加所以,明白这个原理就好办了:创建字段total_count = models.PositiveIntegerField(default=0)后端逻辑def get_count(request, id): new = News.objects.get(id=id) new.total_count += 1 new.save(update_fields=['total_count']) conten原创 2021-03-09 09:13:51 · 505 阅读 · 1 评论 -
关闭django模板的自动转义
关闭django模板的自动转义django模板会对HTML标签和js等语法标签进行自动转义,为了安全。但是有时候可能不希望这些HTML元素被转义,比如在后台编写一篇文章,这篇文章是经过修饰的,带有HTML修饰符的文本,如果自动转义的话,显示的就是保护HTML标签的源文件。具体有两种方法:一种方法是针对一个单独的变量,可以通过过滤器|safe的方式,去告诉django这段代码是安全的不必转义<p>这行代表会被自动转义</p>: {{ data }}<p>这行代表不原创 2021-03-04 17:36:51 · 221 阅读 · 1 评论 -
在django的admin中使用ckedior富文本编辑器
在django的admin中使用ckedior富文本编辑器django后台管理没有富文本编辑器,导致我们想新添一些带格式的文字和图片的时候,比如:新增一个新闻。说明:之前尝试过使用Kindedior,但是在配置图片上传的时候,出现很多问题,就放弃使用,如果不使用图片上传这个功能,但是提倡使用,毕竟界面的功能更完善。安装库pip install django-ckeditor注册INSTALLED_APPS = [ # ... 'ckeditor',]修改模型(前提不原创 2021-03-04 13:30:44 · 423 阅读 · 2 评论 -
django显示上传的图片
django显示上传的图片上传的图片和系统的静态文件中的图片还是不一样的STATIC_URL = '/static/' # 别名# 配置静态文件加载路径STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]STATIC_ROOT = os.path.join(BASE_DIR, "/static/")# 图片上传配置MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace("\\", "/原创 2021-02-25 16:50:02 · 284 阅读 · 0 评论 -
django中的sttings.py文件的部分变量的解读
django中的sttings.py文件的部分变量的解读# 获取当前脚本的完整路径,含带文件本身os.path.abspath(__file__)# 获取脚本的上一级目录os.path.dirname# 路径拼接os.path.join()sys.path是一个列表初始值分别是: 输入脚本的目录(当前文件的目录)(绝对路径) 环境变量 Python默认安装路径# 系统的静态文件目录STATIC_URL = '/static/'# 系统公共静态文件的目录STATICFI原创 2021-01-11 17:52:10 · 216 阅读 · 1 评论 -
django之每个app分别对应一个数据库
django之每个app分别对应一个数据库首先创建数据库 create database aaa charset=utf8; create database bbb charset=utf8;创建app django-admin startapp test1 django-admin startapp test2注册app 在settings.py的INSTALLED_APPS中进行添加 INSTALLED_APPS = [ 'test1', 'test2' ]在项目中配原创 2020-12-17 09:20:12 · 742 阅读 · 0 评论 -
小技巧之pycharm(2020版本)安装autopep8
pycharm(2020版本)安装autopep8首先下载第三方库: pip install autopep8 -i https://pypi.tuna.tsinghua.edu.cn/simple然后依次进行以下操作: 点击File,选择Settings,选择Tools,选择External Tools,点击+ 在Name处填写:autopep8 在Program处填写:autopep8的安装地址 在Arguments处填写:--in-place --aggressive --aggres原创 2020-12-11 09:53:27 · 809 阅读 · 0 评论 -
django数据库之建表
django数据库之建表首先了解几个知识: 什么是一对多,多对多,一对一 什么是关联查询 什么是主表,什么是从表 外键放的位置 正向查询,反向查询 各种设计模式下,怎么查询一对多: 班级表和学生表 一个班级可以有多个学生,一个学生属于那个班级一对一: 学生表和学生信息表 每个学生对应各自的学生信息 多对多: 学生表和课程表 一个学生可以选多门课程,一个课程可以别多个学生选关联查询: 查询数据需要牵扯多个表,需要从多个表中提取字段数据 种类: 内连接 外链接原创 2020-12-09 13:38:45 · 323 阅读 · 1 评论 -
django数据库之迁移文件出错
django的数据库是使用ORM框架ORM:中文意为 对象-关系映射优点:使用ORM,可以面向对象编程,不需要面向数据库编程 对数据库的操作都转换成对类属性和方法的操作 不用编写sql语句 实现数据模型与数据库的解耦,屏蔽各种数据库操作上的差异 不在关注用的是mysql、oracle...等 通过简单的配置就可以轻松更换数据库, 而不需要修改代码缺点:相比较直接使用SQL语句操作数据库,有性能损失根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 在映射过程中有性能损失原创 2020-12-07 16:07:29 · 486 阅读 · 0 评论 -
django数据库之修改或新增字段
修改字段:原字段结构:class A(models.Model): """修改字段""" name = models.CharField(max_length=60)修改后字段结构:class A(models.Model): """修改字段""" name_name = models.CharField(max_length=60)修改后在命令行输入python manage.py makemigrations, 会提示是否将此字段重命名,选择Y,然后继续在命令行输入pyth原创 2020-12-07 15:40:23 · 2094 阅读 · 0 评论 -
ubuntu之下载python以及改变python默认的调用环境的方法
直接下载:sudo apt-get updatesudo apt-get install python3.x源码下载:Python 官方下载地址:https://www.python.org/downloads/找到Gzipped ... 这个版本,右击复制链接wget 上边的链接解压改变python默认调用版本:sudo unlink /usr/bin/pythonsudo ln -s /usr/bin/python3.6(新的python路径) /usr/bin/python原创 2020-12-02 15:43:21 · 92 阅读 · 0 评论 -
django数据库之django.db.utils.OperationalError: (1060, “ cDuplicateolumn name ‘right‘“)
原因:自己在Mysql里修改过表结构,导致数据库与django不一致。执行以下命令解决(myapp换成自己的app名字):python manage.py migrate myapp --fake原创 2020-11-27 15:17:01 · 206 阅读 · 0 评论 -
小技巧之python后端接口模板
Python后端接口模板xxx设计接口: 请求方法(GET、POST、PUT、DELETE) 请求地址:127.0.0.1:8000/test/aaa 请求参数(如路径参数、查询字符串、表单、JSON等) 响应数据(如HTML、JSON等)请求方式:GET选项方案请求方法GET请求地址/test/aaa/请求参数:表单参数参数名类型是否必传说明aaastring是aaa响应结果:HTML响应结果原创 2020-11-26 15:18:03 · 882 阅读 · 0 评论 -
数据分析之pandas
pandas是基于Numpy构建的库,拥有两种数据结构:Series和DataFrameSeries 就是一维数组DataFrame 是二维数组Series :In [1]: from pandas import Series,DataFrameIn [2]: import pandas as pdIn [3]: data = Series([1,2,3,4],index = ['a','b','c','d'])In [4]: dataOut[4]:a 1b 2c原创 2020-08-14 15:45:49 · 129 阅读 · 0 评论 -
django之调用支付宝支付接口
文档:支付宝开放平台入口: https://open.alipay.com/platform/home.htm 创建应用(一般公司做) 只需要更换沙箱环境的appid和网关沙箱环境(开发学习用): 沙箱应用: https://openhome.alipay.com/platform/appDaily.htm?tab=info 沙箱账号: https://openhome.alipay.com/platform/appDaily.htm?tab=account 开发文档: h原创 2020-10-01 21:24:38 · 1555 阅读 · 2 评论 -
简化版的宿舍管理系统(有细微的逻辑问题,没优化)
import osstudent_list = [] # 学生信息表root_list = [] # 管理员信息表room_list = []building_list = []fore_people = []def show_all_meun(): """主菜单""" print("-----学生宿舍管理系统-----") print("1. 学生管理") print('2. 管理员管理') print("3. 宿舍管理") prin原创 2020-11-07 22:57:52 · 687 阅读 · 0 评论 -
django项目之django2.0+xadmin2遇到的问题
xadmin默认最高版本时0.6,跟django2.0以上版本不匹配xadmin2.0版本位置:https://github.com/sshwsfc/xadmin/tree/django2使用方式:将下载完成的文件在项目第三方库的终端打开pip install xadmin-django2.zip=================================================遇到的问题报错如下:File "D:\Envs\django-xadmin\lib\site-pa原创 2020-10-23 16:32:40 · 213 阅读 · 0 评论 -
django数据库之基于ORM框架对数据库进行操作
增增:方式1:通过创建模型类对象,执行save()方法book = BookInfo( btitle='西游记', bput_date=date(1988,1,1), bread=10, bcomment=10)book.save()方式2:通过模型类对象.objects.create()BookInfo.objects.create( btitle='西游记', bput_date=date(1988,1,1), bread=10,原创 2020-10-11 23:24:49 · 271 阅读 · 0 评论 -
Python之魔法方法
__init__()用作变量的初始化赋值,在类实例化对象的时候被自动调用有一个参数self,就是__new__返回的实例__str__()用来显示信息,需要return一个数据,当调用print(对象),则打印这个数据如果没有__str__,打印的是对象的地址__new__()至少要有一个参数cls,代表要实例化的类,必须要有返回值,返回实例化出来的对象,可以return父类__new__出来的实例,也可以直接return object的__new__出来的实例def __new__(c原创 2020-10-09 21:54:11 · 96 阅读 · 0 评论 -
django数据库之模型类设计注意事项
**核心:**设计表 :考虑要展示什么数据,要保存什么数据数据库表名模型类如果未指明表名,Django默认以**小写app应用名_小写模型类名(user_User)**为数据库表名。可通过db_table指明数据库表名。关于主键django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。默认创建的主键列属性为id,可以使用pk代替,pk全拼为primary key。字段类型类型说明A原创 2020-06-11 15:33:51 · 303 阅读 · 0 评论 -
使用django的itsdangerous对openid进行加密
一般在登录的时候,需要获取到用户的openid,但是openid属于用户的隐私信息,所以需要将openid签名处理,避免暴露。在python的django框架中就有itsdangerous来将获取到的用户openid进行序列化,达到加密的效果,安装itsdangerous(两种方法,一种pip install itsdangerous,另一种用源码安装,到GeiHup中下载源码,然后安装)...原创 2020-04-28 21:23:23 · 339 阅读 · 0 评论 -
小技巧之pycharm下设置自定义代码块
自定义代码块缘由:我在学习flask期间,由于flask的特性,需要每天重复写同样的代码,我就想把一样的代码写成一个代码块,在用到的时候,直接输入快捷代码,就实现代码的快速编写步骤:打开pycharm,点击file,点击setting,点击Editor,点击Live Templates , 点击右边绿色的+,选择Live Templates,在下边Abbreviation填写自定义代码块的...原创 2020-03-04 15:46:53 · 685 阅读 · 0 评论 -
设置静态web服务器V1.0
目标: 设置一个静态web服务器,实现向客服端发送所需的数据思想: 静态web服务器的设置和tcp服务器的设置原理差不多,只不过向客户端发送的数据的时候需要遵循http协议,需要添加一个响应报文数据版本: 这里就是一个简单的单线程静态web服务器,我会在后续的版本更新多线程、协程、面向对象等版本,有不懂的地方个人建议先去看我之前写的tcp服务器的搭建# # 静态web服务器的搭建v1.0i...原创 2019-12-08 20:17:47 · 172 阅读 · 0 评论