Django+Mysql开发报错

18.TypeError at /admin/1/reset/

Strings must be encoded before hashing Request Method: POST Request URL: Django Version: 4.0 Exception Type: TypeError Exception Value: Strings must be encoded before hashing Exception Location:

原来的代码

import hashlib
​
def md5(data_string):
    obj = hashlib.md5(settings.SECRET_KEY)
    obj.update(data_string.encode('utf-8'))
    return obj.hexdigest()
​

这个错误表明在对字符串进行哈希处理之前需要先对其进行编码。

Django 的 SECRET_KEY 作为哈希对象的种子(盐),但是在调用 hashlib.md5() 时需要的是字节串(bytes),而不是字符串(str)

因此修改为:

from django.conf import settings
import hashlib
​
def md5(data_string):
    # Ensure SECRET_KEY is encoded to bytes
    secret_key = settings.SECRET_KEY.encode('utf-8')
    obj = hashlib.md5(secret_key)
    obj.update(data_string.encode('utf-8'))
    return obj.hexdigest()
​

19.ProgrammingError at /login/

(1146, "Table 'mls.django_session' doesn't exist") Request Method: POST Request URL: Django Version: 4.0 Exception Type: ProgrammingError Exception Value: (1146, "Table 'mls.django_session' doesn't exist")

rm -r app01/migrations/*  # 除了 __init__.py 文件  
python manage.py makemigrations app01  
python manage.py migrate

20.下拉boostrap的下拉菜单没有反应

首先检查复制代码有没有问题

然后目标锁定是引用的问题

<script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>

当时随便找了一个.js文件,复制粘贴了

解决:可以直接在 HTML 文件中引用 jQuery 的公共 CDN。这样不需要手动下载和包含 jQuery 文件

  <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值