django-channels

深入探索 Django Channels

随着 Web 应用的发展,实时功能如即时消息、实时通知等变得越来越重要。Django Channels 是 Django 的一个扩展,它使得在 Django 中构建实时功能变得可能。本文将深入探讨 Django Channels 的核心概念、架构以及如何实现一个实时应用。 1. Django Channels 简介 Django Channels 扩展了 Django 的功能,允许应用处理 WebSockets、HTTP2 和其他非 HTTP 协议。它为 Django 项目提供了异步处理能力,从而能够处理长连接和实时通信。 2. 为什么选择 Django Channels 实时功能:可以构建如聊天室、实时通知、实时数据更新等功能。 异步处理:提高了应用处理长连接请求的能力。 WebSocket 支持:原生支持 WebSocket 协议,方便构建复杂的实时交互应用。 3. Django Channels 的核心组件 Channels:在 Django 中创建 WebSocket 连接。 Consumer:WebSocket 的连接、接收和发送消息的逻辑。 Routing:WebSocket URL 路由,将请求连接到对应的 Consumer。 4. 安装和配置 Django Channels 首先需要安装 Channels: pip install channels 在 Django 项目的 settings.py 中配置 Channels: # settings.py INSTALLED_APPS = [ # ....

November 15, 2023 · 2 min · K8sCat
django-signals

深入理解 Django 信号机制

Django 信号(signals)是一种实现解耦的有力工具,它允许某些发生的事件通知其他部分的代码。信号主要用于在 Django 应用中的不同部分之间传递信息,尤其是在模型操作发生时。本文将深入探讨 Django 信号的工作原理、如何定义和接收信号,以及如何在项目中有效地使用它们。 ...

November 13, 2023 · 1 min · K8sCat

Django 无法连接本地 MySQL

本地用 Docker 跑了一个 MySQL, 使用 Django 连接 MySQL 报错: django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)") 只要将 localshot 改为 127.0.0.1 即可 开始的配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name', 'USER': 'root', 'PASSWORD': 'root', 'HOST': 'localhost', 'PORT': '3306', } } 修改后的配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', } }

October 9, 2019 · 1 min · K8sCat