安装环境
安装包下载:https://download.csdn.net/download/csdnyang338/87578579
1.安装Python3.8,默认安装pip 勾选模式写入环境变量【path中配置两个环境变量】
C:\Users\yk\AppData\Local\Programs\Python\Python38-32
C:\Users\yk\AppData\Local\Programs\Python\Python38-32\Scripts
C:\Users\yk\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\django\bin【需要汉化支持加上这个】
2.安装patch工具 patch-2.5.9-7-setup.exe 添加环境变量PATH=C:\GnuWin32\bin【必须配置】;
3.安装memcached软件 下载memcached-win32-1.4.4-14 ,在memcached目录下打开命令窗口执行 memcached.exe install 安装memcached服务,在服务管理中开启该服务。
4.安装pip install python-memcached【建议使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-memcached 国内资源库】
5.安装 执行pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Pillow
6.安装 执行pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pycryptodome
7.安装 执行pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ReviewBoard
8.安装mysql数据库 (mysql-installer-community-5.7.40.0)【建议5.7以上版本】
9.安装python的mysql支持pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mysql_connector_python
10.安装mysql客户端支持Pip install c:\mysqlclient-1.4.6-cp38-cp38-win32.whl
11.安装 svn支持安装包,双击执行py38-pysvn-svn1142-1.9.18-2091-Win32.exe
12.安装 apache server,解压httpd-2.4.56-win32-VS16.zip文件
13.安装python与apache之间的整合 pip install mod_wsgi-4.9.2-cp38-cp38-win32.whl
执行mod_wsgi-express module-config命令生成以下配置【后续copy到httpd.conf】:
LoadFile "c:/users/yk/appdata/local/programs/python/python38-32/python38.dll"
LoadModule wsgi_module "c:/users/yk/appdata/local/programs/python/python38-32/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win32.pyd"
WSGIPythonHome "c:/users/yk/appdata/local/programs/python/python38-32"
14.创建数据库【建议使用mysql客户端创建数据库,创建数据库必须设置编码方式为utf8】
登录数据库:mysql -u root -p #root用户登录
创建数据库: create database reviewboard;
创建数据库用户: create user 'reviewboard'@'localhost' identified by 'reviewboard';
赋予数据库权限: grant all on reviewboard.* to 'reviewboard'@'localhost';
刷新数据库配置:FLUSH PRIVILEGES;
退出数据库:exit;
以上安装成功,环境问题基本解决完了,自己下载个subversion执行文件,发布个svn仓库。
注:.whl安装过程如果遇到版本不支持的情况使用python -m pip debug --verbose 命令查看pip支持。
创建网站
执行命令rb-site install C:\Users\yk\Desktop\testwz【该目录必须是空文件夹】
命令执行会有提示信息,按照提示填写就行。
Domain Name:yk【localhost:8080/yk】
Root Path: /【默认】
Database Type:mysql【默认1】
Database Name:reviewboard【默认】
Database Server:localhost【默认】
Database Username:reviewboard
Database Password:reviewboard
Memcached Server:localhost:11211【默认】
Username:admin【默认】
Password:111111【默认】
Mail Address:yk@
Company/Organization Name:yk
配置网站
1.打开C:\Users\yk\Desktop\cyy\Apache24\conf\httpd.conf配置文件,修改
Listen 8082
ServerName localhost:8082
2.修改C:\Users\yk\Desktop\newWZ\conf\settings_local.py配置文件,修改
ALLOWED_HOSTS = ["*"]
3.打开C:\Users\yk\Desktop\newWZ\conf\webconfs\apache-wsgi.conf配置文件,copy文件内容到httpd.conf文件最后。
#<VirtualHost *:6060>
ServerName yk
DocumentRoot "C:/Users/yk/Desktop/newWZ/htdocs"
# Error handlers
ErrorDocument 500 /errordocs/500.html
WSGIPassAuthorization On
WSGIScriptAlias "/" "C:/Users/yk/Desktop/newWZ/htdocs/reviewboard.wsgi/"
<Directory "C:/Users/yk/Desktop/newWZ/htdocs">
AllowOverride All
Options -Indexes +FollowSymLinks
Require all granted
</Directory>
# Prevent the server from processing or allowing the rendering of
# certain file types.
<Location "/media/uploaded">
SetHandler None
Options None
AddType text/plain .html .htm .shtml .php .php3 .php4 .php5 .phps .asp
AddType text/plain .pl .py .fcgi .cgi .phtml .phtm .pht .jsp .sh .rb
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
# Force all uploaded media files to download.
<IfModule mod_headers.c>
Header set Content-Disposition "attachment"
</IfModule>
</Location>
# Alias static media requests to filesystem
Alias /media "C:/Users/yk/Desktop/newWZ/htdocs/media"
Alias /static "C:/Users/yk/Desktop/newWZ/htdocs/static"
Alias /errordocs "C:/Users/yk/Desktop/newWZ/htdocs/errordocs"
Alias /favicon.ico "C:/Users/yk/Desktop/newWZ/htdocs/static/rb/images/favicon.png"
#</VirtualHost>
启动httpd.exe,打开浏览器访问localhost:8082/yk
网站使用
创建仓库
![](https://img-blog.csdnimg.cn/img_convert/5db1f235281c5ae2d2c163e6971f60b6.png)
保存仓库:仓库类型选择subversion,path填写仓库地址,username填写仓库用户,password填写仓库用户密码。
![](https://img-blog.csdnimg.cn/img_convert/4d04856ca3162f9ca061b0e661e44d0b.png)
创建审批请求:项用svn客户端create patch 功能创建patch文件;
![](https://img-blog.csdnimg.cn/img_convert/8450959b8b873a40f7ad03b11b4379ba.png)
点击select选择本地patch文件,路径填写本次提交的代码路径。
![](https://img-blog.csdnimg.cn/img_convert/8f3332f9b132130a317e2097b2a2e4a8.png)
填写一下信息,点击发布。
![](https://img-blog.csdnimg.cn/img_convert/a04a39c6dbc4355ffb318b238008ed4f.png)
点击我的面板,查看审批请求,双击记录打开审批界面进行代码预览和审批。
![](https://img-blog.csdnimg.cn/img_convert/0e76d7a25b2389f6ca625d2ab39ab3ac.png)
网站汉化
修改配置文件:
Django默认配置文件:
C:\Users\yk\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\django\conf/global_settings.py
TIME_ZONE = 'Asia/Shanghai'
# If you set this to True, Django will use timezone-aware datetimes.
USE_TZ = True
ReviewBoard的Django项目配置文件:
C:\Users\yk\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\reviewboard/settings.py
TIME_ZONE = 'Asia/Shanghai'【修改】
LANGUAGE_CODE = 'zh-CN'【修改】
gettext_noop = lambda s: s【新增】
LANGUAGES = (【新增】
('zh-cn', gettext_noop('Simplified Chinese')),
#('zh-tw', gettext_noop('Traditional Chinese')),
)
USE_I18N = True【位置】
BASE_DIR = os.path.dirname(os.path.dirname(__file__))【新增】
LOCALE_PATHS = [【新增】
os.path.join(BASE_DIR, 'locale')
]
注:
TIME_ZONE = 'Asia/Shanghai'设置时区为"亚洲/上海"。
LANGUAGE_CODE = 'zh-CN' # en-us,zh-TW,zh-CN设置语言编码,使用中文简体编码。
gettext_noop = lambda s: s增加国际化函数。
LANGUAGES = (('zh-cn', gettext_noop('Simplified Chinese')))增加国际化中文简体支持。
LANGUAGES = (('zh-tw', gettext_noop('Traditional Chinese')))增加国际化中文繁体支持,此行被注释。
LOCALE_PATHS = (os.path.join(BASE_DIR, 'locale'))指定本定国际化翻译文件所在的目录。
复制
C:\Users\yk\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\reviewboard\locale/zh_TW为zh_CN。
修改djangojs.po,django.po
修改内容如下:
msgid "Ship It!/Issue Counts"
msgstr "评审通过/问题数量"
编译生成mo文件
在reviewboard根目录执行django-admin.py compilemessages生成.mo文件。