项目简介
本项目名为Charade,是基于Django框架开发的猜单词游戏管理系统。该系统允许用户创建与管理游戏,玩家能够参与游戏、提交答案并查看得分。系统支持英文和中文两种语言,还设有后台管理界面,方便管理员对游戏词汇进行增删改操作。
项目的主要特性和功能
- 游戏管理:支持用户创建和管理游戏,可自由设置词汇、游戏规则等。
- 多语言支持:提供英文和中文两种语言选项,玩家能依自身喜好选择游戏语言。
- 用户交互:玩家可参与游戏,提交答案并查看得分。
- 后台管理:管理员可通过后台管理界面,对游戏词汇进行添加、编辑和删除操作。
- 国际化:系统拥有完整的国际化支持,便于支持多种语言。
安装使用步骤
准备依赖
- 安装主要依赖:
bash yum install python-pip pip install django
- 安装其他依赖:
bash pip install pytz pip install Pillow
若安装Pillow报错“ValueError: jpeg is required ....”,则执行:bash yum install libjpeg-devel
调整项目设置
bash
cd /opt
cd charade/www/
试运行
- 编辑
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')
- 编辑
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来处理静态文件。
国际化和本地化设置
- 编辑
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
- 安装:
bash yum install nginx python-devel yum groupinstall "development tools" pip install supervisor pip install uwsgi
-
配置:
- 收集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 ```
- 收集django项目的static文件:
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】