写在前面
本人计科专业,大三下,打算用Web做个系统软件综合训练的小课设,是一个银行家算法模拟的系统,但奈何没有服务器和域名,网站没法正式使用。通过其他人的博客了解到阿里云的免费学生服务器,于是申请了一个学生服务器。
项目开发
项目采用Django Web框架进行开发,前端使用HTML、CSS、JavaScript,后端使用Python,数据库使用内置的sqlite3数据库。
Django项目部署流程
环境配置和项目部署是按照网上的教程做的,流程如下:
- 首先购买一个服务器
- 设置root密码
- 设置安全组中允许访问的端口(端口范围写80/80,授权对象写0.0.0.0/0,表示所有IP地址都能访问)
- 远程链接到服务器
- 使用Xftp将项目上传到服务器
- 安装并配置虚拟环境virtualenv
- 创建虚拟环境BA
- 在BA中安装python3.8.3、django3.2.8和simpleui库
- 修改项目setting.py中的允许访问IP,把服务器公网IP加入列表
- 安装并配置nginx、uWSGI
- 整合django项目的静态文件
- 重启nginx、uWSGI
遇到bug及修复
- css3动画背景图抖动问题
解决:写在css里面的图片是以背景图形式存在的,而写在HTML里的是以标签的形式存在的。在网页加载的过程中,以css背景图存在的图片会等结构加载完成(网页的内容全部显示以后),才开始加载。而HTML的标签是网页结构的一部分,会在加载结构的的过程中加载。网页的内容全部显示以后才开始加载。换句话讲,网页会先加载标签的内容,在加载背景图片,如果引入了一个很大的图片,那么在这个图片下载完成之前,之后的内容都不会显示。而如果用css来引入同样的图片,网页结构和内容加载完成之后,才开始加载背景图片,不会影响你浏览网页内容。网页加载过程中相同的图片会下载一次并保存在 缓存 里,其他地方使用同样的图片就不会再去下载了,即图片可以复用。所以会出现首次加载闪动,之后循环正常的现象。
好像是和预加载,懒加载有关的知识,以后有时间再学习。
- 将项目上传至服务器后,界面显示404
解决:平时开发时setting.py中设置的是debug模式,所以项目会自行去寻找前端静态文件,而部署到服务器上之后就找不到文件了出现404,所以要帮他整合静态文件,在setting.py中设置目标目录STATIC_ROOT = '/home/BankersAlgorithm/nginx/static/' 然后上传项目到服务器中,使用python manage.py collectstatic命令让其自动整合静态文件,重启ngsinx和uwsgi,就可以正常找到文件。
最终仍然存在火狐浏览器css3动画不兼容的问题
Firefox浏览器的css3图片帧动画不兼容的问题,我对不同的浏览器进行了测试,结果是:
- IE 9以下不支持
- IE10支持文字和样式动画,支持图片帧动画
- Firefox支持文字和样式动画,不支持图片帧动画
- Chrome支持各种形式的动画
Chrome的结果最好,IE10也可以正常运行,火狐无论如何调整都不能显示出动画效果
当然往上也有人说把火狐更新到最新版本就可以,我的火狐应该使自动更新的。时间不太允许,没有再去验证了,之后有时间再去检查问题所在吧,会再尝试修复这个bug的。
收获总结
这是我第一次独立地完成一个Web项目,也是第一次使用服务器搭建网站。一个人做工程量大了不少,但最终做出来一个完整的网站还是非常满足的。阿里云服务器的申请非常快速便捷,也可以直接用提供的远程连接去操作服务器,并且非常稳定,也没有卡顿的情况,体验非常好。在配置环境和部署的过程中虽然出现很多版本不对的问题,但网上也有很多相关问题的解决方法,没有耽误太长的时间。
上周汇报展示后,老师也多次夸奖课设非常完整功能齐全,界面简约大方。后面还有一个课设,希望也能用阿里云服务器来完成~
作品展示
首页