Django
文章平均质量分 92
像风一样爱自由
一个努力学习的菜鸟
展开
-
Nginx开启https后Django的request.build_absolute_uri仍然是http
nginx配置如下:server { listen 443 default ssl; root /path/to/source; server_name mydomain; ssl_certificate /path/to/cert; ssl_certificate_key /path/to/key; client_max_body_size 10M; access_log /var/log/nginx/alog.log;原创 2020-10-23 11:02:00 · 1131 阅读 · 0 评论 -
Django celery执行延时任务
由于项目需求,需要在指定时间之后执行异步任务给用户推送消息,由于之前只用过celery的定时任务,在查阅一番资料之后,发现有官方文档中是有相关说明的。T.delay(arg, kwargs=value)是常见的用来执行celery异步任务的命令。而还有另一个命令是不常用的T.apply_async((arg,), {'kwarg': value}, countdown=60, expires=120)是可以用来执行延时任务的,其中countdown指定多少秒后执行,expires原创 2020-09-16 19:05:55 · 1959 阅读 · 2 评论 -
CentOS 8 rsync + sersync 文件同步
CentOS 8 rsync + sersync 文件同步rsync + sersyncrsync+sersync 数据同步系统版本安装 rsync查看 rsync 版本rsync serverrsync 配置文件rsync 配置文件参数rsync 服务器端的密码文件rsync 客户端的密码文件修改权限systemctl 管理 rsync 服务新建 /etc/sysconfig/rsyncd 文件新建 rsyncd.service 文件rsyncd 启动查看rsync 端口 进程开启防火墙端口rsync c原创 2020-09-11 10:25:53 · 1661 阅读 · 1 评论 -
CentOS8 下 解决Nginx Permission Denied问题
背景最近倒腾服务器的时候,选择了CentOS8操作系统,在安装配置Nginx的时候遇到了Permission Denied问题。按照chown和chmod进行配置无果,后来定位到SELinux问题。SELinux是什么?When you upgrade a running system to Red Hat Enterprise Linux (RHEL) 6.6 or CentOS 6.6, the Security Enhanced Linux (SELinux) security permi原创 2020-09-09 15:41:47 · 3273 阅读 · 0 评论 -
Django settings.py设置选项
settings.py的默认设定与工作原理Django设置文件settings.py包含的选项非常多,但好消息是大部分不需要我们手动去设置。当我们使用django-admin.py startproject xxx命令创建一个Django项目时,你会发现生成的settings.py已经包含了部分基本的默认设定,我们只需要修改和添加我们需要使用的设定就好了。一个项目完整的全局默认设置在django/conf/global_settings.py文件中。Django在编译时,会先载入global_.原创 2020-09-02 10:10:11 · 421 阅读 · 0 评论 -
python之gunicorn的配置
python常见的web部署搭配nginx+gunicorn,下面记录一下gunicorn的配置使用。安装gunicornpip install gunicorngunicorn -h # 查看使用的命令gunicorn启动一个flask的应用程序# app.pyfrom flask import Flask def create_app(): app = Flask(__name__) return app app = create_app()原创 2020-07-09 23:37:16 · 1646 阅读 · 0 评论 -
supervised使用教程
安装平台要求引自官网(supervised.org/introductio…):Supervisor已经过测试,可以在Linux(Ubuntu 9.10),Mac OS X(10.4 / 10.5 / 10.6)和Solaris(对于Intel为10)和FreeBSD 6.1上运行。它可能在大多数UNIX系统上都能正常工作。在任何版本的Windows下,Supervisor都不会运行。Supervisor可以使用Python 2.4或更高版本,但不能在任何版本的Python 3下使用。安装安装原创 2020-07-09 23:31:27 · 2374 阅读 · 0 评论 -
Django配置Ajax跨域调用/设置Cookie
跨域调用前端单纯的想要通过ajax跨域调用后端提供的API是比较简单的,可谓是前人栽树,后人乘凉,ottoyiu提供了解决Django跨域问题的插件django-cors-headers。它的使用方法在github上介绍的是很详尽的,我这里总结一下基本的东西:首先下载这个插件pip install django-cors-headers然后在你的Django项目中的settings.py中做如下配置(install app和middleware):INSTALLED_APPS = ( ...原创 2020-07-08 14:31:41 · 331 阅读 · 0 评论 -
Django3.0.8生产环境部署nginx、uwsgi、daphne、supervisor、gunicorn、celery
Django3.0.8+nginx+uwsgi+daphne+supervisor 生产环境部署前言环境配置技术方法实现过程安装Python3.8.3安装Nginx安装MySQL安装Redis安装虚拟环境 virtualenv创建虚拟环境python中的virtualenv命令集在虚拟环境中安装pip包将项目文件上传到服务器规划的目录拉取所有需要的static file到同一目录配置nginx作为反向代理服务器编辑uwsgi文件使用supervisor管理daphne和uwsgi进程最后部署中遇到的错误和解原创 2020-07-08 04:20:17 · 1755 阅读 · 4 评论 -
Django-Channels使用和部署
Django-Channels作用在Django部署的时候,通常使用的都是WSGI(Web Server Gateway Interface)既通用服务网关接口,该协议仅用来处理 Http 请求,更多关于WSGI的说明请参见廖雪峰博客。当网址需要加入 WebSocket 功能时,WSGI 将不再满足我们的需求,此时我们需要使用ASGI既异步服务网关接口,该协议能够用来处理多种通用协议类型,包括HTTP、HTTP2 和 WebSocket,更多关于 ASGI 的说明请参见此处。ASGI 由 Dja原创 2020-07-07 09:19:18 · 7152 阅读 · 2 评论 -
django 报错 ConnectionAbortedError: [WinError 10053] 您的主机中的软件中止了一个已建立的连接
ConnectionAbortedError: [WinError 10053] 您的主机中的软件中止了一个已建立的连接。解决方法:找到python/Lib/socketserver.py文件,修改SocketWriter类的write方法,具体如下:def write(self, b): try: self._sock.sendall(b) except Exception as e: self._sock.close()...原创 2020-06-25 03:29:48 · 7627 阅读 · 1 评论 -
Django 浏览器报错 MIME 类型(“text/html”)不匹配(X-Content-Type-Options: nosniff)
问题描述 Django设置 DEBUG=False后,访问前端报错 MIME 类型(“text/html”)不匹配(X-Content-Type-Options: nosniff) 所有 css 和 js 文件都无法访问,后台显示404 问题分析 出现的问题根本原因是:当我们在开发django应用时如果设置了 DEBUG = True,那么django便会自动帮我们对静态文件进行路由;但是当我们设置DEBUG = False后,这一功能便没有了,此时静态文件就会出现加载失败的情况,想要让静...原创 2020-06-23 16:31:16 · 3655 阅读 · 2 评论 -
django3 使用celery+redis实现异步任务
准备工作1. 安装:django==3.0.5celery==4.4.2eventlet==0.25.2redis==3.3.112. 修改settings.py文件# celery 设置# celery中间人 redis://redis服务所在的ip地址:端口/数据库号BROKER_URL = 'redis://127.0.0.1:6379/1'# celery...原创 2020-04-27 17:26:36 · 1105 阅读 · 1 评论 -
centos7.3+nginx+uwsgi+virtualenv(python3)+django项目上线部署
1.准备工作1)安装操作系统:Centos7.32)关闭防火墙[root@ITCMDB ~]# systemctl stop firewalld3)在开发环境上收集项目所有包(mycmdbtest) C:\Users\surface>pip freeze > plist.txtdiff-match-patch==20121119Django...原创 2019-12-31 10:43:05 · 767 阅读 · 0 评论 -
win10下安装并测试apache服务器并简单测试使用
一、下载apache安装包https://www.apachelounge.com/download/我的是win10 64位系统二、解压安装包E盘下新建文件夹 apache,将下载的安装包拷贝到该目录并解压;得到三、修改conf文件夹下的httpd.conf文件apache目录Define SRVROOT "e:/apache/Apache24"Server...原创 2019-12-30 19:51:04 · 1198 阅读 · 0 评论 -
windows平台使用apache部署Django项目
在 Django 的学习过程中, 我们一直使用 Django 的 manage.py 的runserver 命令来运行 Django 应用, 这个命令启动的是 Django 自带的用于开发的简易服务器, 它是一个用纯 Python 写的轻量级的 Web 服务器. 这个服务器内置在 Django 中是为了方便开发, 并不适用于实际的生产环境. 当项目真正部署上线的时候我们就必须 Django 项目部...原创 2019-12-30 19:50:29 · 1393 阅读 · 2 评论 -
django-模板继承
一、模板继承Django 使用了“模板继承”的概念:这就是 {% extends "base.html" %}所做的事。它意味着 “首先载入名为 ‘base’ 的模板中的内容到当前模板,然后再处理本模板中的其余内容。”总之,模板继承让你在模板间大大减少冗余内容:每一个模板只需要定义它独特的部分即可。在项目中一个页面需要修改还好,那么如果当多处并且多个页面都需要修改,那么就大大增加工作量。当时...原创 2019-11-22 11:47:14 · 505 阅读 · 0 评论 -
Django框架之make_password && check_password
python的Django框架自带了一套加密方法: make_password( )和check_password(),具体作用如下:from django.contrib.auth.hashers import make_password, check_passwordpassword = "12345"print("password",password)password_end...原创 2019-11-22 11:35:50 · 1080 阅读 · 0 评论 -
Django 索引与联合索引
索引:索引可以极大的提高数据的查询速度,但是会降低插入、删除、更新表的速度,因为在执行这些写操作时,还要操作索引文件Django中建立索引class PressureSensor(models.Model): store = models.ForeignKey(Store, verbose_name='门店ID', on_delete=models.CASCADE) ...原创 2019-11-15 01:44:34 · 1918 阅读 · 0 评论 -
Django orm中的外键级联删除
这里的系统环境为django1.6 os为win7今天有个需求说的是添加一个地区表,然后用外键和几个非常重要的实体表来做关联(地区表作为其他表的外键),写完地区的删除操作的时候,测试了下代码,功能正常。可是眼睛移动到控制台输出的时候傻了connexesql ->DELETE FROM `mngm_device` WHERE `mngm_device`.`area_id` IN ...原创 2019-11-15 01:37:00 · 849 阅读 · 0 评论 -
Django URL路由基础(转载)
路由的编写方式是Django2.0和1.11最大的区别所在。Django官方迫于压力和同行的影响,不得不将原来的正则匹配表达式,改为更加简单的path表达式,但依然通过re_path()方法保持对1.x版本的兼容。URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应。在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除此之...原创 2019-11-15 01:34:11 · 188 阅读 · 0 评论 -
Django URL重定向的3种方法详解(转载)
最近收到很多读者的鼓励,非常开心,这给了我更多将公众号持续更新下去的动力。今天还收到微信公众号开通以来的第一份赞赏,在这里要特别感谢橘子同学。如果你学习的是Python Web开发和Django,本公众号绝对不会让你失望,我会争取所有文章做到清晰易懂,原创免费。如果你是老鸟,本公众号的内容也可以作为系统性的参考资料。利用django开发web应用, 我们经常需要进行URL重定向,有时候还...原创 2019-11-15 01:31:34 · 3370 阅读 · 0 评论 -
Django中实现数据库连接池(基于二)
数据库长连接长连接是指程序之间的连接在建立之后,就一直打开,被后续程序重用。使用长连接的初衷是减少连接的开销。先看看官方文档是怎么讲Django长连接的。翻译得可能不太得体,原文参见Django databases。Django长连接长连接(Persistent connections)是为了避免在每个请求中都重新建立数据库连接的开销。在Django中,数据库连接由CONN_MAX_...转载 2019-11-11 23:21:53 · 3812 阅读 · 1 评论 -
Django中实现数据库连接池(二)
数据库连接池的概念据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加安全可靠。假设网站一天有很大的访问...转载 2019-11-11 22:45:06 · 437 阅读 · 0 评论 -
Django MySQL连接池实现方式(一)
1. 安装django-database-poolpip install django-database-pool2. settings .py中的DATABASES做如下修改DATABASES = { 'default':{ 'ENGINE': 'djdbpool.db.backends.mysql', "HOST": "127.0.0...原创 2019-11-11 22:36:54 · 2873 阅读 · 2 评论 -
Django使用数据库时出现错误:RuntimeError: cryptography is required for sha256_password or caching_sha2_password
Pycharm连接数据库出现RuntimeError: cryptography is required for sha256_password or caching_sha2_password解决办法:安装cryptography即可:pip install cryptography作者:_Cappuccino_链接:https://www.jianshu.com/p/6a10c...原创 2019-11-11 22:27:04 · 501 阅读 · 0 评论 -
python-为Django项目上的每个应用程序创建不同的自定义404页面
有没有一种方法可以为Django项目中的每个应用程序创建多个自定义错误模板,我的意思是,在我的项目中,我有3个应用程序,每个应用程序将显示3种不同的custom 404错误.现在,我在后台应用程序和前台显示相同的404错误页面.最佳答案创建一个自定义error view并将其分配给根urls.py中的handler404变量:from django.views.defaul...原创 2019-11-07 16:26:49 · 214 阅读 · 0 评论 -
Django2.2 Session 和 Cookie
Cookie无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此Cookie就是在这样一个场景下诞生。cookie的工作原理是:由服...原创 2019-11-06 23:13:57 · 528 阅读 · 0 评论 -
centos7 配置 uwsgi 系统服务(systemd)
背景生产环境中采用nginx+uwsgi+django来部署web服务,这里需要实现uwsgi的启动和停止,简单的处理方式可以直接在命令行中启动和kill掉uwsgi服务,但为了更安全、方便的管理uwsgi服务,配置uwsgi到systemd服务中,同时实现开启自启的功能;另,鉴于supervisor不支持python3,没采用supervisor来管理uwsgi服务;具体配置方法...原创 2019-11-04 11:57:34 · 1096 阅读 · 0 评论 -
centos7 配置 uwsgi 系统服务(systemd)
背景生产环境中采用nginx+uwsgi+django来部署web服务,这里需要实现uwsgi的启动和停止,简单的处理方式可以直接在命令行中启动和kill掉uwsgi服务,但为了更安全、方便的管理uwsgi服务,配置uwsgi到systemd服务中,同时实现开启自启的功能;另,鉴于supervisor不支持python3,没采用supervisor来管理uwsgi服务;具体配置方法...原创 2020-06-25 00:44:25 · 285 阅读 · 0 评论 -
django从MySQL获取当天的数据(ORM)
QueuedrecordRealTime.objects.filter(date_take__gte=datetime.datetime.now().date(),device=db.device,department__status=1,department__dept_name=dept_name).order_by("date_take")检索条件里面加date_take__gt...原创 2019-11-04 10:27:45 · 2545 阅读 · 0 评论 -
Django 创建新App及其常用命令
创建新的项目django-admin.py startproject my_project创建新的App# 在Django项目(my_project)的根目录下执行python3 manage.py startapp my_app启动Django中的开发服务器# make new migrationspython3 manage.py makemigrations...转载 2019-09-11 12:27:41 · 327 阅读 · 0 评论