Python Web之Django使用的几个技巧!

最近在搭建Django站点,所以有了如下记录,与其说是Django使用技巧,不如说是记录几个Django(2.1.2版本)使用过程中碰到的几个问题,学习渣在学习实践中总是会出现各种莫名其妙的问题,而且比较悲哀的是,都是比较基础的问题,几乎多留意一下就能解决,但往往会困扰个人很久!

1.错误代码的问题解决

  • 错误情况:修改文章详情报错,Exception Location: E:\my_blogs\env\lib\site-packages\django\forms\boundfield.py in as_widget, line 89

  • 错误信息:TypeError: render() got an unexpected keyword argument 'renderer' 错误

  • 错误原因:Django集成DjangoUeditor,才导致这个错误的!

  • 解决方案:这个问题困扰了许久,而且网上的解决方案,注释代码在本渣渣这边测试是无效的,好在有后面找寻的方案解决了,感谢!

错误情况:修改文章详情报错.png

修改代码:

DjangoUeditor > widgets.py > UEditorWidget 类,间接继承 django > forms > widgets.py > Widget 类,而 django > forms > widgets.py > Widget 类!

#def render(self, name, value, attrs=None):  #修改前!
    def render(self, name, value, attrs=None, renderer=None):
        if value is None:

解决方案.png

来源:

博客园/王者心·青铜梦

记录 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”为你要修改密码的用户名),根据提示内容修改即可。

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 数据库!

#原数据库 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!

import pymysql
pymysql.install_as_MySQLdb()

Django2.1以上不再支持MySQL5.5,必须5.6版本以上!


上一篇: 没有了