littlebot
Published on 2025-04-11 / 2 Visits
0

【源码】基于Django框架的猜单词游戏管理系统

项目简介

本项目名为Charade,是基于Django框架开发的猜单词游戏管理系统。该系统允许用户创建与管理游戏,玩家能够参与游戏、提交答案并查看得分。系统支持英文和中文两种语言,还设有后台管理界面,方便管理员对游戏词汇进行增删改操作。

项目的主要特性和功能

  1. 游戏管理:支持用户创建和管理游戏,可自由设置词汇、游戏规则等。
  2. 多语言支持:提供英文和中文两种语言选项,玩家能依自身喜好选择游戏语言。
  3. 用户交互:玩家可参与游戏,提交答案并查看得分。
  4. 后台管理:管理员可通过后台管理界面,对游戏词汇进行添加、编辑和删除操作。
  5. 国际化:系统拥有完整的国际化支持,便于支持多种语言。

安装使用步骤

准备依赖

  1. 安装主要依赖: bash yum install python-pip pip install django
  2. 安装其他依赖: bash pip install pytz pip install Pillow 若安装Pillow报错“ValueError: jpeg is required ....”,则执行: bash yum install libjpeg-devel

调整项目设置

bash cd /opt cd charade/www/

试运行

  1. 编辑www/settings.py文件: python DEBUG = False ALLOWED_HOSTS = ['*'] STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
  2. 编辑www/urls.py文件: ```python from django.conf import settings from django.conf.urls.static import static

urlpatterns = [ ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 3. 临时调整配置:bash vim www/settings.py DEBUG = True 4. 运行服务:bash python manage.py runserver 0.0.0.0:80 ``` 在浏览器访问,测试确认后台的数据读写无异常后,停止运行,后续将使用uwsgi来管理。

创建管理员账户

bash python manage.py createsuperuser 根据提示创建root密码用于登录后台,访问地址:http://you_server_ip/admin/

处理DEBUG关闭时的静态文件

当DEBUG选项处于关闭状态时,django不处理静态文件,此时应配置nginx或apache来处理静态文件。

国际化和本地化设置

  1. 编辑www/settings.py文件: ```python MIDDLEWARE_CLASSES = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', ]

LANGUAGES = [ ('en', 'English'), ('zh-cn', 'zh'), ] 2. 编辑`www/urls.py`文件:python urlpatterns = [ url(r'^i18n/', include('django.conf.urls.i18n')), ] 3. 维护翻译文件:bash django-admin makemessages -l zh django-admin compilemessages ``` 最后,重载(reload) web服务即可生效。

配置Email

编辑www/settings.py文件: python EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_TLS = False EMAIL_HOST = 'smtp.xxx.com' EMAIL_PORT = 25 EMAIL_HOST_USER = 'test@xxx.com' EMAIL_HOST_PASSWORD = 'TestEmail' DEFAULT_FROM_EMAIL = 'TestEmail <test@xxx.com>' 若要在accounts这个app中启用“注册账户时,发送激活账户的邮件”功能,则编辑www/accounts/apps.py文件,调整配置: python IS_NEW_USER_NEED_VERIFY_BY_EMAIL = True

安装和配置uwsgi+supervisord+nginx

  1. 安装: bash yum install nginx python-devel yum groupinstall "development tools" pip install supervisor pip install uwsgi
  2. 配置:

    • 收集django项目的static文件: bash python manage.py collectstatic
    • 使用supervisor来管理uwsgi服务,用uwsgi来运行django: bash echo_supervisord_conf > /etc/supervisord.conf && mkdir /etc/supervisor.d && echo -e '[include]\nfiles=/etc/supervisor.d/*.ini' >>/etc/supervisord.conf && grep ^[^\;] /etc/supervisord.conf
    • 启动supervisord服务: bash /usr/bin/supervisord -c /etc/supervisord.conf echo '/usr/bin/supervisord -c /etc/supervisord.conf' >>/etc/rc.local
    • 配置uwsgi服务: bash cat /etc/supervisor.d/uwsgi.ini [program:uwsgi] command=/usr/bin/uwsgi --socket 127.0.0.1:8090 --chdir /opt/charade/www --module www.wsgi user=nobody autostart=true autorestart=true stdout_logfile=/tmp/charade.stdout.log stderr_logfile=/tmp/charade.stderr.log bash chown nobody:nobody -R /opt/charade/www
    • 启动uwsgi服务: bash supervisorctl reload supervisorctl status
    • 使用nginx来处理静态文件和转发请求到后端的uwsgi服务: ```bash cat /etc/nginx/conf.d/www.conf server { listen 80 default; server_name www.test.com; charset utf-8;

    location /static { alias /opt/charade/www/static; }

    location /media { alias /opt/charade/www/media; }

    location / { uwsgi_pass 127.0.0.1:8090; include uwsgi_params; } } bash systemctl start nginx.service systemctl enable nginx.service ```

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】