上文中已经成功将Django项目部署到了服务器中,但仍有些小的BUG,本文将来解决一下在我部署中遇到的错误
一.数据库迁移问题
将Django部署上服务器后,我们的有些网页可能因为数据库没有迁移上去而报一些标签错误。
利用上文中所讲的方法进入虚拟环境之中,并进入到项目当中
执行:
python manage.py makemigrations
如果执行该语句后,报错没有可迁移的数据库
解决方法:将每个app下的迁移文件全部删除,只留下__init__.py
文件
再次执行,就可以看到成功解决了
这时再执行:
python manage.py migrate
二,python版本与Django版本问题
这个问题很玄学,我是在成功部署项目后进入admin页面时出现了进不去admin页面的问题,没有任何报错,admin页面连接中断,这个问题有可能就是因为python与Django之间有冲突。
修改如下路径文件的代码
/www/wwwroot/crryg.top/xiangmu01_venv/lib/python3.8/site-packages/django/db/backends/sqlite3/creation.py
原代码如下:
@staticmethod
def is_in_memory_db(database_name):
return database_name == ':memory:' or 'mode=memory' in database_name
修改为:
@staticmethod
def is_in_memory_db(database_name):
return not isinstance(database_name,path) and (
database_name == ':memory:' or 'mode=memory' in database_name
)
此代码大概在文件的第10行左右
将其修改后,进入python任务管理器重启项目,再次进入admin即可
三.django-simpleui 登录页 报错
如果你的admin页面使用了simpleui来美化的话,很有可能会遇到如下报错
django.template.exceptions.TemplateSyntaxError: Invalid block tag on line 98: 'translate', expected 'elif','else' or 'endif'. Did you forget to register or load th is tag?
解决方法:
方式一
在安装 simpleui 的位置中找到 login.html,虚拟环境中如下位置:
venv\Lib\site-packages\simpleui\templates\admin\login.html
编辑 98 行,将 translate 改为 trans 即可。
方式二
pip install git+https://github.com/Shankschn/simpleui.git
原因
Django 3 中使用 translate,但是 Django 2.2 中使用的为 trans。