用 Python 从头搭建一个在线聊天室

网站建设4年前发布
30 0 0

今天从头开始做一个在线聊天网站,网上各种各样的聊天工具已经很多了,为啥还要做这么一个聊天工具呢,无他,兴趣耳!,今天先完成第一部分,搭建起聊天网站的整体框架。,还是使用 Flask 来搭建后台应用,使用 flask-login 扩展来处理用户登陆鉴权逻辑。首先定义登陆表单。,一个简单的登陆表单,不做过多解释。,接下来定义数据库结构。,当前,我们只需要一个 user 用户表,只包含三个字段的简单表。用户密码也只是简单的保存了明文,后面再处理用户密码的 hash 问题。,下面就可以定义用户登陆表单,这里定义了,只检查用户名是否存在,如果存在,就执行 login_user() 函数,登陆。用户密码的使用,也留到后面再做处理。,其中 load_user,是回调函数,将获取到的 user 对象存储到浏览器的 session 中,然后在调用 login_user 函数时,就会调用 load_user 来把真正需要登陆的用户设置到 session 中。当登陆成功后,就会跳转到 chat 函数所对应的页面。,chat 函数比较简单,只是展示一个网页,使用 login_required 装饰器,保证该函数只允许登陆的用户访问。,增加些初始化函数,增加了初始化数据库和新增用户的函数。,首先处理登陆页面,在 login.html 中添加,使用扩展库 flask_bootstrap 来快速构建页面。,下面重点来看看 chat 页面,主要使用了 Ajax 来处理文字交互。首先来看看主体页面,在 chat.html 中填入代码,整体效果如下,是不是挺少女系的。,20230306132222b263cb890de30037d1d043d9a8d2bf12421f15613,当用户在点击“提交”按钮后,调用 JS 函数,为了后面便于扩展,将未登录的用户特别区分开来,后面也许同样允许未登陆用户访问该页面,但是只能同机器人小黄鸭聊天,再来看函数 sendMessageLogin,接收几个参数,然后将当前会话消息追加到 HTML 页面中,并且调用真正的后台 API 函数 sendToServer,sendToServer 函数调用后台 API,并把接收到的消息回写到 HTML 页面中。,而目前的后台 API 也比较简单,直接返回用户输入的消息,这样,一个整体的聊天室架子就搭建好了,后面我们再接入 redis 和自己训练的聊天机器人,来实现真正的在线聊天室。

© 版权声明

相关文章