自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Python操作Excel

Python 操作ExcelExcel 中的三大对象WorkBook:工作薄对象Sheet: 表单对象Cell: 表格对象1. 读取内容import openpyxl```python# 第一步:将Excel文件加载到一个工作薄对象中,传入excel的路径wb = openpyxl.load_workbook('test.xlsx')# 第二步:选择文件中的表单,传入表单名sh = wb['test']# 第三步: 读取内容,传入行和列res = sh.cell(row=1,

2021-04-13 23:06:18 149

原创 Django后端定制site

在开发中,大部分情况下,只需要有一个site就够了,但是有时需要将后台的权限进行区分,可以通过定制site来实现一套系统提供多套admin后台。在url.py 中一个url对应一个site,url(r'^admin/', custom_site.urls)Django的admin.site其实是django.contrib.admin.AdminSite 的一个实例,我们可以继承AdminSite来定义自己的site。from django.contrib.admin import AdminSite

2020-05-21 23:17:56 426

原创 Docker常用命令

启动与停止安装完成Docker后,默认已经启动了docker服务,如需手动控制docker服务的启停,可执行如下命令# 启动dockersudo service docker start# 停止dockersudo service docker stop# 重启dockersudo service docker restartdocker镜像操作列出镜像...

2020-04-29 21:26:28 194

原创 视图集ViewSet

视图集ViewSet使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中:list() 提供一组数据retrieve() 提供单个数据create() 创建数据update() 保存数据destory() 删除数据ViewSet视图集类不再实现get()、post()等方法,而是实现动作 action 如 list() 、create() 等。视图集只在使用as_vie...

2020-04-18 16:48:17 1067

原创 信号量

信号量是一个计数器,用于记录资源的消耗情况,当资源消耗是递减,当资源释放是增加,信号量代表资源释放可用。from threading import BoundedSemaphoreMax = 3semaphone = BoundedSemaphore(Max) # 资源的最大数量为3print(semaphone._value) # 打印可以申请的资源数量semaphone.acqui...

2020-04-07 22:36:31 118

原创 获取当前日期的年月日

import timelocaltime = time.localtime(time.time())print(localtime)time.struct_time(tm_year=2020, tm_mon=4, tm_mday=4, tm_hour=22, tm_min=8, tm_sec=56, tm_wday=5, tm_yday=95, tm_isdst=0)年月日时分秒,本月...

2020-04-04 22:18:19 571

原创 Django的xadmin的简单使用

xadmin是Django的第三方扩展,可是使Django的admin站点使用更方便。1. 安装通过如下命令安装xadmin的最新版pip install https://github.com/sshwsfc/xadmin/tarball/master在配置文件中注册如下应用INSTALLED_APPS = [ ... 'xadmin', 'crispy_for...

2020-03-15 22:58:10 304

原创 Django中事物的简单使用

from django.db import transactionwith transaction.atomic():# with 语句下面的代码,凡是涉及到数据库操作的代码,# 在进行数据库操作时,都会放在同一个事物中。 p1 = transaction.savepoint() # 在进行数据库操作时,设置事物保存点 .................. transaction.s...

2020-03-03 23:06:57 122

原创 Django中使用缓存

安装、pip install drf-extensions使用方法1. 直接添加装饰器可以在使用rest_framework_extensions.cache.decorators中的cache_response装饰器来装饰返回数据的类视图的对象方法,如```pythonclass CityView(APIView): @cache_response() def g...

2020-02-08 16:52:53 259

原创 Django 中celery的简单使用

Celery异步任务队列celery的本质: 通过提前创建的进程调用函数来实现异步的任务。celery的概念:任务执行者(worker): 提前创建的进程,调用对应的函数来实现异步任务。任务发出者: 发送需要worker执行的任务函数的信息。中间人(broker): 任务队列,保存任务发出者发出的信息。celery的特点:1)任务执行者(创建的进程)可以单独在另一台...

2020-02-03 15:52:33 225 1

原创 Django 关联对象的嵌套序列化

####### 如果需要序列化的数据中包含有其他关联对象,则对关联对象数据的序列化需要指明。 例如,在定义英雄数据的序列化器时,外键hbook(即所属的图书)字段如何序列化?# 为多对一关系# 多# class HeroInfoSerializer(serializers.Serializer):# '''英雄序列化器''' ...........................

2020-01-17 22:08:13 1421

原创 Django中的序列化器

Serializer序列化器作用: 数据的序列化和反序列化1. 序列化功能 将实例对象转化为字典数据2. 反序列化功能 数据校验 数据保存(新增或更新)定义Serializer定义方法 Django REST framework中的Serializer使用类来定义,须继承自 rest_framework.serializers.Serializer。例如,我们已有了一个数据库模型类 ...

2020-01-15 20:57:50 375

原创 查询集 QuerySet

1 概念 Django的ORM中存在查询集的概念。查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表):all():返回所有数据。filter():返回满足条件的数据。exclude():返回满足条件之外的数据。order_by():对结果进行排序。 对查询集可以再次调用过滤器进行过滤,如Book...

2020-01-11 15:39:09 538 1

原创 Django 报 No Model Named 'MySQLdb' 错误

Django 中是没有MySQLdb包的但是配置数据库后会报No Model Named 'MySQLdb’的错误,Django提供了另外一个包pymysql在项目的同名文件夹的__init__.py文件中import pymysqlpymysql.install_as_MySQLdb() # 相当于将pymysql改名为MySQLdb...

2020-01-09 21:52:52 190

原创 Django中的中间件的基本使用

Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应的处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性,我们可以使用中间件在Django处理视图的不同阶段对输入或输出进行干预。def simple_middleware(get_response): #此处编写的代码仅在Django第一...

2020-01-08 21:33:55 153

原创 Django中给类视图添加装饰器的方法

1.直接在配置url时添加装饰器# 定义一个装饰器def my_decorator(view_func): def wrapper(request, *wargs, **kwargs): print("装饰器被调用了") # print(request.method) return view_func(request, *wargs, *...

2020-01-07 22:08:04 753

原创 Django中的QueryDict对象

定义在django.http.QueryDict中HttpRequest对象的属性GET,POST都是QueryDict对象,与python中的字典不同,QueryDict类型的对象,可以用来处理一个键带有多个值的情况。QueryDict 这个字典可以用来处理一个键带有多个值得情况.即: 一键 ===> 多值1.方法get,根据键获取值如果一个键同时拥有多个值将获取最后一个值,如果...

2020-01-05 22:08:23 265

原创 Django本地语言和时区

Django支持本地化处理,即显示语言和时区支持本地化。本地化是将显示的语言、时区等使用本地的习惯,这里的本地化就是进行中国化,中国大陆地区使用简体中文,时区使用亚洲/上海时区。注意:这里不适应北京时区。在配置文件每中,初始化的工程默认语言和时区为英语和UTC标准时区。 LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC'将语言和时区改为中国大陆LANG...

2020-01-01 17:30:56 330

原创 响应状态码

状态码由三位数字组成,第一个数字定义了响应的类别,工分为五种:1xx:指示信息–表示请求已接收,继续处理。2xx:成功–表示请求已被成功接收、理解、接受。3xx:重定向–要完成请求必须进行进一步的操作。4xx:客户端错误–请求有语法错误,或请求无法实现。5xx:服务器端错误–服务器未能实现合法的请求。常见状态码200 OK:客户端请求成功400 Bad Request:客户端请求有...

2019-12-29 11:07:05 139

原创 请求方式

HTTP 请求方式根据HTTP标准,HTTP请求可以使用多种请求方式。HTTP 1.0 定义了三种请求方法:GET, POST, HEAD。HTTP 1.1新增了五种请求方法:OPTIONS, PUT, DELETE,TRACE,CONNECT.GET:请求指定的页面信息,返回实体主体。HEAD:类似于GET请求,只不过返回的相应中没有具体的内容,用于获取报头。POST: 向指定资源提...

2019-12-29 09:55:06 91

原创 上下文

上下文变量: 并不是全局变量, 是有使用范围的, 范围为从某次请求开始, 到该请求结束 # 请求上下文: 记录一些和请求有关的数据 request session # 应用上下文: 记录一些事和应用有关的数据 current_app gcurrent_app: 会自动引用创建的flask应用, 当需要在其他文件中使用flask应用时, 通过current_app来获取g: flask给开发者预...

2019-12-15 22:51:40 57

原创 cookie的简单使用

cookie特点: 将数据保存在客户端, 浏览器会自动将该网站的cookie数据发送给服务器。场景:一般存放一些不太重要的数据,可以减轻服务器的存储压力。浏览器第一次访问服务器时,服务器将想要保存的数据设置到响应头的set_cookie字段中,浏览器自动将响应头的set_cookie中的数据取出保存到cookie中,之后请求服务器是没浏览器自动将cookie中的数据设置到请求头中,服务器重请...

2019-12-15 21:47:20 93

原创 后台管理

解决普通用户登录之后直接访问后台具体的视图函数的问题如果是普通用户访问后台的视图函数,直接跳转到项目主页,不再执行后续的逻辑判断后台后续要实现多个视图函数,如果每一个函数内部都去判断用户权限,那么代码重复率高,冗余代码较多所以得有一个统一判断入口,后台模块中,除了登录页面,后台的其他页面都要判断是否具有管理员权限采用的方式为:请求勾子中的 before_request,来请求之前进行判断...

2019-09-26 22:13:44 129

原创 Django创建项目的命令

django-admin startproject 项目名称python manage.py startapp 应用app名

2019-07-28 20:41:33 244

原创 跨域CORS

跨域CORS我们为前端和后端分别设置了两个不同的域名位置 域名前端 www.aaa.site后端 api.bbb.site现在,前端与后端分处不同的域名,我们需要为后端添加跨域访问的支持。我们使用CORS来解决后端对跨域访问的支持。使用django-cors-headers扩展参考文档https://github.com/ottoyiu/django-cors-heade...

2019-07-25 00:18:32 80

原创 接入支付宝

接入支付宝支付宝开发平台登录https://open.alipay.com/platform/home.htm沙箱环境是支付宝提供给开发者的模拟支付的环境跟真实环境是分开的沙箱应用:https://docs.open.alipay.com/200/105311沙箱账号:https://openhome.alipay.com/platform/appDaily.htm?tab=acco...

2019-07-25 00:08:41 112

原创 修改MySQL的事务隔离级别

事务隔离级别指的是在处理同一个数据的多个事务中,一个事务修改数据后,其他事务何时能看到修改后的结果。MySQL数据库事务隔离级别主要有四种:Serializable 串行化,一个事务一个事务的执行Repeatable read 可重复读,无论其他事务是否修改并提交了数据,在这个事务中看到的数据值始终不受其他事务影响Read committed 读取已提交,其他事务提交了对数据的修改后,本事...

2019-07-24 23:44:18 456

原创 Django的数据库事务

Django中对于数据库的事务,默认每执行一句数据库操作,便会自动提交。我们需要在保存订单中自己控制数据库事务的执行流程。在Django中可以通过django.db.transaction模块提供的atomic来定义一个事务,atomic提供两种用装饰器用法from django.db import transaction@transaction.atomicdef viewfunc(...

2019-07-24 22:58:47 165

原创 Authorization请求头

因为前端请求时携带了Authorization请求头(主要是JWT),而如果用户未登录,此请求头的JWT无意义(没有值),为了防止REST framework框架在验证此无意义的JWT时抛出401异常,在视图中需要做两个处理重写perform_authentication()方法,此方法是REST framework检查用户身份的方法在获取request.user属性时捕获异常,REST fr...

2019-07-23 23:20:05 9432

原创 base64模块的使用

base64模块的使用Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2^6=64,所以每6个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。Base64常用于在通常处理文本数...

2019-07-23 23:07:17 202

原创 pickle模块的使用

pickle模块的使用pickle模块是python的标准模块,提供了对于python数据的序列化操作,可以将数据转换为bytes类型。pickle.dumps() 将python数据序列化为bytes类型pickle.loads() 将bytes类型数据反序列化为python的数据类型...

2019-07-23 23:05:47 70

原创 获取前端传入的参数和查询方法

Flask和Django中获取前端传入的参数

2019-07-20 14:39:51 1881

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除