Django
Nick Peng
There is but one secret to success.
---Stick to the minute.
展开
-
Redis key过期事件监听实现 - 30分钟自动取消未支付订单
文章目录一、前言二、实现方案分析三、Redis key过期事件方案实现步骤3.1 Redis 安装步骤详见3.2 修改 Redis 配置3.3 在获取支付链接视图中设置key过期事件3.4 编写取消订单视图3.5 编写订单监听脚本四、项目运行并监听订单一、前言前段时间一个朋友问我,我们这产品让我实现个30分钟如果订单未支付,系统自动取消订单的功能,当时巴拉巴拉给他说了几种方案;那么,今天着重挑选一种通用、效率高的方案给大家讲解一下;Demo源码地址详见:《Alipay_demo》 下载即可使用好原创 2020-08-09 18:11:08 · 4402 阅读 · 7 评论 -
【附Demo】Django 对接支付宝电脑网站、手机网站、App支付步骤详解
文章目录一、前言二、支付宝开发者相关文档三、各支付功能支付流程图四、支付宝接入前准备4.1 创建应用4.2 配置公私钥五、支付视图接口实现5.0 封装支付宝支付对象5.1 获取支付链接接口实现5.2 支付成功同步回调通知接口实现5.3 支付成功异步通知接口实现六、区别总结一、前言本文主要针对 Python for Django 在对接支付宝电脑网站、手机网站、App支付过程中具体实现步骤进行详解;相信大家支付功能也写了不少,但时间一长,再次用到的时候有些细节难免会忘记,此篇文章就为方便后续快速实现支原创 2020-08-09 14:05:22 · 2057 阅读 · 2 评论 -
Celery 异步任务队列高级用法 以及 3种调用任务的方法详解
Celery对象核心的对象就是Celery了,初始化方法:class Celery(object): def __init__(self, main=None, loader=None, backend=None, amqp=None, events=None, log=None, control=None, set_...原创 2020-05-03 23:35:09 · 8690 阅读 · 1 评论 -
Django 集成 Celery 异步任务队列(Broker RabbitMQ版)
目录一、前言二、关于Celery一、前言在Django Web平台开发中,碰到一些请求执行的任务时间较长的情况,为了加快用户的响应时间,就可以采用Celery异步任务的方式来解决好文章 记得收藏+点赞+关注额 !!!---- Nick.Peng二、关于CeleryCelery是基于Python开发的一个分布式任务队列框架,支持使用任务队列的方式在分布的机器/进程/线程上执行任务调...原创 2020-05-03 17:11:25 · 1491 阅读 · 0 评论 -
Django 中 集成 Celery 异步任务队列(Broker Redis版)
一、创建 Celery 项目创建django项目celery_demo, 并创建应用demo:django-admin startproject celery_demo # 创建一个celery_demo项目python manage.py startapp demo # 新建一个celery应用,名为demo目录结构如下:在celery_demo模块中创建celery.py模...原创 2020-05-01 00:55:29 · 692 阅读 · 0 评论 -
Celery 异步任务队列 之 周期性(定时)执行任务
目录一、周期性任务celery beat二、启动woker处理周期性任务一、周期性任务celery beatcelery beat是一个调度器,它可以周期内指定某个worker来执行某个任务。如果我们想周期执行某个任务需要增加beat_schedule配置信息在celeryconfig.py新增以下beat_schedule 配置:broker_url='redis://:@127...原创 2020-05-01 00:38:02 · 1519 阅读 · 0 评论 -
Celery 异步任务队列《快速入门二》
目录一、在项目中使用Celery二、调用任务Calling Task三、Designing Work-flows四、路由Routing该篇着重介绍一下如何调用任务,队列路由一、在项目中使用Celery我的项目目录:TestCelery/ ├── proj│ ├── celeryconfig.py │ ├── celery.py │ ├── init.py │ └── task...原创 2020-05-01 00:00:20 · 456 阅读 · 0 评论 -
Celery 异步任务队列《快速入门一》
目录一、Celery介绍二、开发遇到的问题三、Celery原理及基本配置3.1 Celery安装3.2 任务队列Queue3.3 消息中间件Broker3.4 生产者Producer与消费者Worker3.5 配置方法一、Celery介绍Celery是一个功能完备即插即用的任务队列。 它使得我们不需要考虑复杂的问题,使用非常简单。celery适用异步处理问题,当发送邮件、或者文件上传, 图像处...原创 2020-04-30 23:40:55 · 398 阅读 · 0 评论 -
局域网内其他主机访问运行在宿主机下虚拟机中的Django等后端项目
目录一、遇到的问题?二、解决方案好文章 记得收藏+点赞+关注额 !!!---- Nick.Peng一、遇到的问题?开发过程中,我们有的时候会将项目放在linux环境下运行测试,例如在虚拟机下启动的服务地址是http://0.0.0.0:8000, 宿主机的IP: 192.168.0.100,虚拟机的IP: 192.168.232.128;如果前端用我们宿主机的 IP:Port,是...原创 2020-04-22 17:25:02 · 1388 阅读 · 2 评论 -
如何配置 Django + HTTPS 开发环境?
HTTP的弊端及HTTPS的由来众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在“网络分层模型”中属于“应用层协议”的一种。那么在这里我们并不研究该协议标准本身,而是从安全角度去探究使用该协议传输数据本身存在的安全问题:(1)通信使用明文(不加密),内容可能被窃听;(2)不验证通信方的身份,因此可能遭遇伪装;(3)无法证明报文的完整行,所以可能被篡改。为了...转载 2020-03-24 17:44:51 · 681 阅读 · 0 评论 -
Django 两种方法实现如何在终端打印 ORM 对应的 SQL 语句?
一、导读:在使用 Django 框架开发项目中,如果想知道使用 ORM 语句操作数据库,Django 内部转换对应的 SQL 语句时,可以使用以下方法来进行查看好文章 记得收藏+点赞+关注额 !!!---- Nick.Peng二、方法一:在 Django 项目的 settings.py 文件中,找到日志配置LOGGING,没有找到日志配置项的直接复制粘贴如下代码即可:配置好之后...原创 2019-12-03 15:58:25 · 3592 阅读 · 0 评论 -
(总结)Django ORM 性能优化建议
文章目录前言一,利用标准数据库优化技术二,巧用Django的QuerySets三,属于数据库的工作就交给DB本身计算,别用Python处理四,如果需要就一次性取出你所需要的数据五,减少数据库的连接数前言本文着重讲解对 Django ORM 性能优化的几点建议,ORM 数据层提供各种途径优化数据的访问,如果掌握 Django 的优化技巧,开发过程中稍稍留意,后期会省不少的工作量。好文章 记得...原创 2019-11-29 00:05:42 · 1910 阅读 · 0 评论 -
(总结)Django 高性能ORM 查询优化
文章目录导读一、QuerySet1.1 可切片1.2 可迭代1.3 惰性查询1.4 缓存机制(重点)1.5 何时查询集不会被缓存?二、exists() 与 iterator() 方法(重点)2.1 exists2.2 iterator2.3 总结:三、查询优化(重点)3.1 select_related(基于连表查询,一对一/多外键)3.1.1 一对一简单使用3.1.2 多外键查询3.1.3 深层...原创 2019-11-28 23:46:04 · 3597 阅读 · 1 评论 -
Django 2.X 使用 Xadmin 搭建后台遇到的坑以及解决方法
一、序言: Python 做后台,用 Django 最方便了,但是 django 自带的 admin 的后台管理模块很丑,功能也不齐全;不要发愁,大神已经给我们集成好了一个叫 xadmin 的后台,可自定义主题,我们拿来用即可。。。但是 现在 django 已经升级到 2.1 版本了,xadmin 在兼容性上貌似更不上了,相信用到的朋友都会遇到不少坑!今天就把我遇到的一些 坑 以及 解决...原创 2019-11-12 19:29:01 · 1290 阅读 · 0 评论 -
总结使用3年Django一些开发经验
使用 Django 做项目到现在也快 3年了。最喜欢的其实还是 Django 的 ORM 框架。公司的项目都是前后分离的,使用 Django 做后端接口开发还是很高效的。特此总结一些 Django 开发的小经验。先说一些最最基础的吧。使用 virtualenv 隔离开发环境使用 pip 管理项目依赖,主要就是一个小技巧,使用 pip freeze > requirements....原创 2019-11-12 11:06:46 · 1012 阅读 · 0 评论 -
Django根据已有数据库表反向生成models类
一. 创建一个Django项目django-admin startproject ‘xxxx‘二. 修改setting文件在setting里面设置你要连接的数据库名称,地址,账号密码之类的信息,和创建新项目的时候一致DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', ...原创 2019-10-11 23:38:29 · 1355 阅读 · 0 评论 -
Django框架 之 ORM★增删改查★表单详解
文章目录 一. ORM基本配置1.创建 django 项目2.settings.py 文件配置2.1.需要在install_app中配置需要连接的app2.2. 需要在database中进行配置连接mysql的用户名和密码以及数据库3.__init__的配置4.models文件配置5.数据库迁移,生成表单语句 二. orm框架的表单的增删改查1.增2.删3.改4.查(表A的ud关联表b)4.1 有...原创 2019-10-11 14:59:20 · 733 阅读 · 1 评论 -
Django ORM分页器使用步骤详解
文章目录一. django自带的分页1.导入模块2.读取信息3.生成painantor对象4.生成page对象二. 自定义分页一. django自带的分页此处以读取 UserInfo 表为例:1.导入模块from django.core.paginator import Paginator2.读取信息 userlist = models.UserInfo.objects.all(...原创 2019-10-11 12:06:42 · 2202 阅读 · 0 评论 -
Django 中防范 CSRF 跨站请求伪造攻击步骤详解
CSRF 概念:CSRF跨站点请求伪造(Cross—Site Request Forgery)。攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。CSRF 攻击原理以及过程:1、用户C打开浏览器,访问受信任网站A,输入...原创 2019-09-13 00:17:45 · 693 阅读 · 0 评论 -
Django REST framework 中文文档 & 序列化 与 反序列化详解
DRF 中文文档: 需要的朋友们请点击...序列化器(Serializer)1. 自定义型:继承rest_framework.serializers.Serializer 2. 模型类型:继承rest_framework.serializers.ModelSerializer序列化器的字段和选项类型常用字段类型:字段 字段构造方式 BooleanField...原创 2019-06-25 00:21:21 · 2387 阅读 · 0 评论 -
【经典教程】Windows、Linux、Mac 安装 Django 步骤详解
Django 安装在安装 Django 前,系统需要已经安装了Python的开发环境。接下来我们来具体看下不同系统下Django的安装。Window 下安装 Django如果你还未安装Python环境需要先下载Python安装包。1、Python 下载地址:https://www.python.org/downloads/2、Django 下载地址:https://www.dj...原创 2019-05-24 17:12:18 · 704 阅读 · 0 评论 -
Django 中路由的解析顺序及原理
路由原理图:路由定义位置:Django的主要路由信息定义在工程同名目录下的urls.py文件中,该文件是Django解析路由的入口。每个子应用为了保持相对独立,可以在各个子应用中定义属于自己的urls.py来保存该应用的路由。然后用主路由文件包含各应用的子路由数据。除了上述方式外,也可将工程的全部路由信息都定义在主路由文件中,子应用不再设置urls.py。如:from d...原创 2019-09-21 01:46:33 · 1276 阅读 · 0 评论 -
Django 中路由反(逆向)解析reverse
路由命名:在定义路由的时候,可以为路由命名,方便查找特定视图的具体路径信息。1) 在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间,如url(r'^users/', include('users.urls', namespace='users')), # 在主路由中添加 命名空间 参数命名空间表示,凡是users.urls中定义的路由,...原创 2019-09-21 01:46:41 · 1100 阅读 · 0 评论 -
Django 中的请求对象 Request
回想一下,利用 HTTP 协议向服务器传参有几种途径?提取 URL 的特定部分,如 /weather/beijing/2018,可以在服务器端的路由中用正则表达式截取; 查询字符串(query string),形如 key1=value1&key2=value2; 请求体(body)中发送的数据,比如表单数据、json、xml; 在 http 报文的头(header)中传参。一...原创 2019-09-21 01:52:04 · 440 阅读 · 0 评论 -
Django 中 Session 的储存和操作
一、启用Session:Django项目默认启用Session。可以在settings.py文件中查看,如图所示如需禁用session,将上图中的session中间件注释掉即可。二、存储方式:在settings.py文件中,可以设置session数据的存储方式,可以保存在数据库、本地缓存等。2.1 数据库存储在数据库中,如下设置可以写,也可以不写,这是默认存储方式。...原创 2019-09-21 14:04:48 · 2213 阅读 · 8 评论 -
Django 如何定义中间件 以及 原理
中间件:Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。中间件的定义方法:定义一个中间件工厂函数,然后返回一个可以别调用的中间件。中间件工厂函数需要...原创 2019-09-21 14:07:22 · 530 阅读 · 0 评论 -
Django 中的响应对象 Response
视图在接收请求并处理后,必须返回HttpResponse对象或子对象。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。一、HttpResponse:可以使用django.http.HttpResponse来构造响应对象。HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)...原创 2019-09-21 01:54:13 · 1031 阅读 · 0 评论 -
Django 中如何设置 Cookie 和 读取 Cookie?
Cookie:Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同...原创 2019-09-21 14:00:46 · 1246 阅读 · 0 评论 -
Django 调试时在控制台打印当前访问的 url 路径
提示:在视图入口位置添加以下代码即可。一、打印当前访问完整路径(包含路径和参数):例如:/test/?uid=1&cid=1print(request.get_full_path())二、打印当前访问路由(只有路径,不含参数):例如:/test/print(request.path_info)...原创 2019-09-23 15:08:14 · 2410 阅读 · 0 评论 -
Django 源码分析 LazySetting 对象
一、Django 中通过 LazySetting 对象来获取项目的配置,LazySetting 对象有什么特性?为什么使用这个对象?LazySetting 顾名思义,就是延迟获取配置内容。比如,我们定义了一个对象A,并对其添加了一些属性,对A初始化时,我们将 A 的属性的值设置为空,当我们要访问 A 其中的一个属性时,此时属性的值为空,我们才加载属性的值,并将空值设置为对应的值,返回属性值,...原创 2019-09-24 13:12:00 · 1413 阅读 · 0 评论 -
Django框架 之 ORM查询方法含义说明
一、一般操作<1>all(): 查询所有结果<2>filter(**kwargs): 它包含了与所给筛选条件相匹配的对象<3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。<4&g...原创 2019-09-26 09:57:13 · 483 阅读 · 2 评论 -
解决 Pycharm 配置 Docker interpreter 进行开发时 python console 和 manage shell 无法使用的问题
前言:本文适用于项目环境使用的是 Pycharm 配置 Docker 中的 Python interpreter;Pycharm 配置 Docker python 解释器方法见:https://blog.csdn.net/PY0312/article/details/101520978;问题描述:我们在使用 Pycharm 的时候,难免会用到 Python console 或...原创 2019-09-27 14:54:13 · 1779 阅读 · 0 评论 -
基于 Django 使用 qrcode 模块生成二维码
简介: 二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于1994 年发明。现随着智能手机的普及,已广泛应用于平常生活中,例如商品信息查询、社交好友互动、网络地址访问等等。qrcode模块是Github上的...原创 2019-10-09 15:28:11 · 1342 阅读 · 0 评论 -
Django 开发中常用的命令总结
1. 创建一个Django Project# 使用下面的命令可以创建一个projectdjango - admin.py startproject mysite# 创建好之后可以看到如下的project结构mysite/manage.pymysite/__init__.pysettings.pyurls.pywsgi...原创 2019-09-15 21:57:24 · 363 阅读 · 0 评论