参考:
https://github.com/igemsoftware2017/SYSU-Software-2017
安装过程:
项目环境:
Windows, Linux
可能是因为原项目在Linux环境下开发,所以移植到Windows的时候有一些硬编码和目录的错误(原项目把数据放在/home/smartgirl下面)
需要/必须的环境:
必须有MySQL和Python3, 并且python.exe必须改名为python3(否则Setup.bat无法运行)
安装步骤:
安装Setup.bat :
Setup.bat的流程逻辑是这样的:
1. 运行VenvSetup.py, 安装virtual venv环境到项目中;利用virtual env的环境安装requirements.txt依赖,, 安装必要的包,安装Django;
2. 用DbInit.py初始化数据库
3. 删除原来的数据库, 利用django初始化数据库文件夹sdin
4. init.py初始化数据库
Windows下正常运行必须进行的修改:
在接下来运行Setup.bat的时候,会遇到以下问题:路径问题,log文件夹不存在, 数据库的删除错误
运行Setup.bat之前:
修改settings.py
I.添加一个BASE_DIR的和os.path.join
igem2017/igem2017/settings.py 的 /smartgirl/IGEM2017-SYSU.Software/igem2017/log/all.log 应该改为os.path.join(BASE_DIR, 'log/all.log'), 其他文件如果相似的错误以此类推
II.增加一个目录log
ValueError: Unable to configure handler 'default': [Errno 2] No such file or directory
在igem2017/下面增加一个log目录和对应文件即可
III. setting.py Django 配置
配置DATABASES.PASSWORD和USER,数据库, 同时在mysql里创建数据库
IV. DbInit.py
drop user和db的时候提前退出造成没有数据库django了,删掉其中35行左右的的return 0
运行runserver.bat之后:
V.sdin/views/main_views.py的652行的硬编码要更改
160行的硬编码search_url要改成自己的服务器url
VI. 数据加载
数据加载在:MySQL->localhost:3306->django,根据加载的过程可以看到原项目的文件是:sdin/tools/preload
数据库的初始化会比较漫长,至少经过半个小时之后得到的结果如下:
VII. 运行服务器
cmd切换到主目录下,运行runserver.bat
之后浏览器访问:127.0.0.1:8000,(如果返回400错误,是django的安全性检查设置,在settings.py里修改ALLOWED_HOST)
但是打开了浏览器,显示不正常,css等静态文件都是404 not found。没有想到静态文件加载这么简单的东西也需要一个路由,对于django来说这就是它很重的一个体现。
文章参考:
静态文件到底放哪里去? blog.csdn.net/sinat_21302587/article/details/74059078 看起来好像证明了STATIC_ROOT的重要性,而且也简化了步骤,给出了测试,但是好像不起作用并且牵扯到了nginx。
http://www.cnblogs.com/dspace/p/6166413.html 静态文件改debug 当设置setting.py文件当中的DEBUG=FALSE后,Django会默认使用Web Server的静态文件处理,故若没设置好Web Server对静态文件的处理的话,会出现访问静态文件404的情况, 可以通过设置--insecure参数解决:
icebug@localhost:~$ python manage.py runserver –insecure
但是你肯定不能避免在生产环境下把debug设为False。
简书:http://www.jianshu.com/p/65e619d7c552 这个可以解决问题
Note:注意调试的时候要清除缓存
接下来就是愉快的欣赏时间了
其他:
原项目提供的链接http://sdin.sysusoftware.info已经挂了。另外原项目的成员怕是没有在Windows下跑过,才会有这么多坑ORZ。