最近在搭建Django站点,所以有了如下记录,与其说是Django使用技巧,不如说是记录几个Django(2.1.2版本)使用过程中碰到的几个问题,学习渣在学习实践中总是会出现各种莫名其妙的问题,而且比较悲哀的是,都是比较基础的问题,几乎多留意一下就能解决,但往往会困扰个人很久!
1.错误代码的问题解决
- 错误情况:修改文章详情报错,Exception Location: E:my_blogsenvlibsite-packagesdjangoformsboundfield.py in as_widget, line 89
- 错误信息:TypeError: render() got an unexpected keyword argument 'renderer' 错误
- 错误原因:Django集成DjangoUeditor,才导致这个错误的!
- 解决方案:这个问题困扰了许久,而且网上的解决方案,注释代码在本渣渣这边测试是无效的,好在有后面找寻的方案解决了,感谢!
修改代码:
DjangoUeditor > widgets.py > UEditorWidget 类,间接继承 django > forms > widgets.py > Widget 类,而 django > forms > widgets.py > Widget 类!
代码语言:javascript复制#def render(self, name, value, attrs=None): #修改前!
def render(self, name, value, attrs=None, renderer=None):
if value is None:
来源:
博客园/王者心·青铜梦
记录 TypeError: render() got an unexpected keyword argument 'renderer' 错误
https://www.cnblogs.com/python-boy/p/11290606.html
2.修改Django后台账号信息
- 解决方案一:覆盖原账号信息
直接清除原账号信息,清除数据库的管理员,重新新建超级管理员账号信息!
- 解决方案二:修改账号信息
cd到manage.py目录下,在Terminal中执行:python manage.py changepassword your_name(其中“your_name”为你要修改密码的用户名),根据提示内容修改即可。
代码语言:javascript复制python manage.py shell
>>from django.contrib.auth.models import User
>>user=User.objects.get(username='admin')
>>user.set_password('*********')
>>user.save()
#忘记用户名?
>>user1 = User.objects.filter(is_superuser = True)
>>user2 = User.objects.filter(is_superuser = True, is_staff = True)
>>print(user1,user2)
3.更换Django数据库为Mysql数据库
如果上线网站,还是建议更改为Mysql数据库,所以这里就有了更换本地项目的sqlite3数据库,上线变成mysql 数据库!
代码语言:javascript复制#原数据库 sqlite3
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
# }
#更改为 mysql 数据库
DATABASES={
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'zhongzemin',
'USER':'zhongzemin',
'HOST':'159.75.36.12',
'PASSWORD':'3505193ni',
'PORT':'3306',
}
}
需要注意的是,更换为 mysql 数据库的同时,需要安装第三方库,pymysql,来链接数据库,同时服务器的mysql版本必须大于5.5,本渣渣这里升级的版本为5.7.34!
代码语言:javascript复制import pymysql
pymysql.install_as_MySQLdb()
Django2.1以上不再支持MySQL5.5,必须5.6版本以上!
·················END·················