当前位置: 首页 > news >正文

做折扣的网站电子商务代运营

做折扣的网站,电子商务代运营,wordpress模板打开慢,百度账号安全中心官网文章目录 准备工作创建 Django 项目创建应用程序配置项目编写 Consumer编写路由创建 URL 路由运行应用用户认证消息持久化显示历史消息结论 Django Channels 是 Django 的一个扩展#xff0c;允许在 Web 应用中添加实时功能#xff0c;例如 Websockets、HTTP2 和其他协议。本… 文章目录 准备工作创建 Django 项目创建应用程序配置项目编写 Consumer编写路由创建 URL 路由运行应用用户认证消息持久化显示历史消息结论 Django Channels 是 Django 的一个扩展允许在 Web 应用中添加实时功能例如 Websockets、HTTP2 和其他协议。本文将介绍如何使用 Django Channels 构建一个简单的实时聊天应用程序。 准备工作 首先确保你已经安装了 Django 和 Channels。你可以使用以下命令安装 pip install django channels创建 Django 项目 使用以下命令创建一个新的 Django 项目 django-admin startproject realtime_chat然后进入项目目录 cd realtime_chat创建应用程序 创建一个新的 Django 应用程序 python manage.py startapp chat配置项目 在 settings.py 文件中添加 Channels 的配置 # settings.pyINSTALLED_APPS [...channels,chat, ]ASGI_APPLICATION realtime_chat.routing.application创建一个新的 ASGI 路由文件 routing.py # routing.pyfrom channels.routing import ProtocolTypeRouterapplication ProtocolTypeRouter({})编写 Consumer 在 consumers.py 文件中编写一个简单的 Consumer # chat/consumers.pyfrom channels.generic.websocket import AsyncWebsocketConsumerclass ChatConsumer(AsyncWebsocketConsumer):async def connect(self):await self.accept()async def disconnect(self, close_code):passasync def receive(self, text_data):pass编写路由 在 routing.py 文件中添加路由配置 # routing.pyfrom channels.routing import ProtocolTypeRouter, URLRouter from channels.auth import AuthMiddlewareStack from django.urls import path from chat.consumers import ChatConsumerapplication ProtocolTypeRouter({websocket: AuthMiddlewareStack(URLRouter([path(chat/, ChatConsumer.as_asgi()),])), })创建 URL 路由 在 urls.py 文件中添加 URL 路由 # chat/urls.pyfrom django.urls import path from . import consumerswebsocket_urlpatterns [path(chat/, consumers.ChatConsumer.as_asgi()), ]在主项目的 urls.py 中包含 Chat 应用的路由 # realtime_chat/urls.pyfrom django.urls import path, includeurlpatterns [...path(chat/, include(chat.urls)), ]运行应用 运行 Django 服务器 python manage.py runserver现在你可以通过访问 http://localhost:8000/chat/ 来测试你的实时聊天应用了。 用户认证 首先我们将使用 Django 自带的认证系统来处理用户认证。在 settings.py 中启用认证系统 # settings.pyINSTALLED_APPS [...django.contrib.auth,django.contrib.contenttypes,... ]AUTHENTICATION_BACKENDS [django.contrib.auth.backends.ModelBackend, ] 然后我们需要修改 ChatConsumer以便处理用户认证 # chat/consumers.pyfrom channels.generic.websocket import AsyncWebsocketConsumer from django.contrib.auth.models import AnonymousUserclass ChatConsumer(AsyncWebsocketConsumer):async def connect(self):self.user self.scope[user]if isinstance(self.user, AnonymousUser):await self.close()else:await self.accept()async def disconnect(self, close_code):passasync def receive(self, text_data):pass现在只有经过身份验证的用户才能连接到聊天消费者。 消息持久化 我们希望用户在重新加载页面后能够看到之前的聊天消息。为了实现这一点我们将使用 Django 的数据库来存储消息。 首先我们需要创建一个模型来存储聊天消息 # chat/models.pyfrom django.db import models from django.contrib.auth.models import Userclass Message(models.Model):user models.ForeignKey(User, on_deletemodels.CASCADE)content models.TextField()timestamp models.DateTimeField(auto_now_addTrue)def __str__(self):return f{self.user.username}: {self.content}然后我们需要修改 ChatConsumer以便在接收到消息时将其保存到数据库中 # chat/consumers.pyfrom channels.generic.websocket import AsyncWebsocketConsumer from django.contrib.auth.models import AnonymousUser from .models import Message import jsonclass ChatConsumer(AsyncWebsocketConsumer):async def connect(self):self.user self.scope[user]if isinstance(self.user, AnonymousUser):await self.close()else:await self.accept()async def disconnect(self, close_code):passasync def receive(self, text_data):text_data_json json.loads(text_data)content text_data_json[message]message Message.objects.create(userself.user, contentcontent)message.save()现在当用户发送消息时它们将被保存到数据库中。 显示历史消息 最后我们需要修改前端以显示历史消息。在 ChatConsumer 中我们可以添加一个方法来发送历史消息给客户端 # chat/consumers.pyclass ChatConsumer(AsyncWebsocketConsumer):...async def fetch_messages(self):messages Message.objects.all()[:10] # 获取最近的10条消息content {command: messages,messages: self.messages_to_json(messages)}await self.send(text_datajson.dumps(content))staticmethoddef messages_to_json(messages):result []for message in messages:result.append({user: message.user.username,content: message.content,timestamp: str(message.timestamp)})return result然后在连接建立时调用这个方法 # chat/consumers.pyasync def connect(self):...await self.fetch_messages()在前端你可以使用 JavaScript 来接收并显示历史消息。 结论 通过添加用户认证和消息持久化功能我们的实时聊天应用变得更加完善和实用。你可以根据需要进一步定制和扩展这个应用例如添加在线用户列表、私聊功能等。Django Channels 提供了强大的工具让你可以构建出功能丰富的实时 Web 应用。
http://www.hkea.cn/news/14329653/

相关文章:

  • 知名大型网站搭建公司佳木斯企业网站建设
  • 九龙坡做网站网站建设问一问公司
  • 李光辉:营销型企业网站建设的指导思想是什么?网站切换效果
  • 自己 做 网站建设网站能赚钱
  • 阿里云服务器如何做两个网站微信h5游戏网站建设
  • wwe中文官网站优秀网站建设公司电话
  • 做it行业招标网站有哪些科技论文
  • 潍坊网站建设wancet公司注册网上核名网站
  • 企业网站功能清单手机建立网站软件
  • ck网站网站的icp备案信息是什么
  • 阿里巴巴免费做网站迅捷在线图片编辑
  • 小网站模板网站开发技术要求
  • 什么网站可以做设计专业公司网站 南通
  • 400电话网络推广微信网站广州网站制作一般多少钱
  • 摄图网的图片可以做网站吗软件科技有限公司
  • 家装建材公司网站建设手机网站字体大小自适应
  • 为网站网站做代理怎么判超级推荐的关键词怎么优化
  • 有了域名空间服务器怎么做网站html代码做的网站
  • 循化县wap网站建设公司酒店网络营销策略论文
  • 网站和网页的关系网站中常用的英文字体
  • 阿坝州住房和城乡建设厅网站怎么买域名自己做网站
  • 淘宝客网站一定要备案wordpress 博客 视频教程
  • 安徽建设厅网站网址西安高端模板建站
  • 网站建设违约合同wordpress 登录弹窗
  • 四川建设公司网站做网站有哪些程序
  • 手机网站管理wordpress访问私密帖子
  • 做公司网站有什么亮点wordpress插件 wp audio player
  • 建设网站可以先买域名吗国家企业信用信息查询官网
  • 网站 开发 成本以数字域名为网址的网站
  • 网上做图赚钱的网站seo运营是什么