开发经验、理论知识积累帖(持续更新)

 2023.2.14

2023.2.24

用VS调试数据结构C语言代码,执行输入语句时,出现错误:

 经查找后发现错误:

 格式出现错误,应该为”%d",不能带空格。

2023.4.17

1.使用pip安装flask时报以下错误:

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1122)'))': /simple/flask/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1122)'))': /simple/flask/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1122)'))': /simple/flask/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1122)'))': /simple/flask/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1122)'))': /simple/flask/
Could not fetch URL Links for flask: There was a problem confirming the s
sl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded wit
h url: /simple/flask/ (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1122)'))) - skipping
ERROR: Could not find a version that satisfies the requirement flask (from versions: none)
ERROR: No matching distribution found for flask

后来发现是开着代理(VPN)下的,网络不通畅。

2.后端账户密码验证的知识:

使用哈希和盐是一种常见的密码存储和验证方式,可以增加密码破解的难度和安全性。哈希是一种将任意长度的消息压缩成固定长度输出的函数,而盐是一个随机字符串,可以增加破解密码的难度。下面是一个使用哈希和盐来存储和验证用户密码的示例代码:

```python
import hashlib
import os

# 生成盐,可以使用随机字符串或者其他随机值
salt = os.urandom(16)

# 生成密码哈希,将密码和盐拼接后进行哈希运算
password = "mypassword"
salted_password = password.encode() + salt
hashed_password = hashlib.sha256(salted_password).hexdigest()

# 存储哈希和盐,通常可以将它们保存在数据库中
stored_hashed_password = hashed_password
stored_salt = salt

# 验证用户密码,将用户输入的密码和盐拼接后进行哈希运算,然后和存储的密码哈希进行比较
user_password = input("请输入密码:")
salted_user_password = user_password.encode() + stored_salt
hashed_user_password = hashlib.sha256(salted_user_password).hexdigest()

if hashed_user_password == stored_hashed_password:
    print("密码正确!")
else:
    print("密码错误!")
```

在上面的代码中,我们首先生成一个随机盐,然后将用户密码和盐拼接在一起,使用哈希函数对它们进行哈希运算。存储时,我们将密码哈希和盐分别保存在数据库中。当用户输入密码时,我们将输入的密码和存储的盐拼接在一起,使用相同的哈希函数对它们进行哈希运算,然后将它们与存储的密码哈希进行比较。如果它们相同,则密码正确,否则密码错误。

请注意,此代码仅用于演示目的,实际应用中需要更加严格的安全措施和验证,例如使用更强的哈希函数和更长的盐值,以及使用加盐哈希函数来防止彩虹表攻击等。

2023.4.18

运行flask应用程序报错:

Traceback (most recent call last):
  File "D:\pycharm\project\register.py", line 66, in <module>
    app.run(host='localhost')
  File "D:\python\lib\site-packages\flask\app.py", line 1191, in run
    run_simple(t.cast(str, host), port, self, **options)
  File "D:\python\lib\site-packages\werkzeug\serving.py", line 1037, in run_simple
    srv = make_server(
  File "D:\python\lib\site-packages\werkzeug\serving.py", line 877, in make_server
    return ThreadedWSGIServer(
  File "D:\python\lib\site-packages\werkzeug\serving.py", line 710, in __init__
    self.server_bind()
  File "D:\python\lib\http\server.py", line 140, in server_bind
    self.server_name = socket.getfqdn(host)
  File "D:\python\lib\socket.py", line 791, in getfqdn
    hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-89 in position 0: invalid continuation byte' codec can't decode byte 0xc

根据chatgpt的解释,是编码格式有问题:

这段错误信息看起来是一个Unicode解码错误,可能是因为某些字符串包含了非UTF-8编码的字符。

根据错误信息中的提示,错误发生在执行socket.getfqdn(host)时,这个函数返回主机的全限定域名(Fully Qualified Domain Name,FQDN),用于在HTTP服务器的响应头中设置Server字段。

解决这个问题的方法是在启动Flask开发服务器时,指定一个有效的主机名。例如,您可以将app.run()改为以下代码:

app.run(host='localhost')

这会将主机名设置为localhost,并且应该可以避免Unicode解码错误。

如果您需要通过网络访问您的应用程序,则需要将host参数设置为您计算机的IP地址或公共域名。例如:

app.run(host='0.0.0.0')

这将允许通过计算机的IP地址或公共域名访问应用程序。请注意,这可能会带来一些安全风险,并且应该仅在开发和测试环境中使用。在生产环境中,应该使用一个可靠的Web服务器(如Apache或Nginx)来部署您的应用程序。

但是修改后并没有起到作用,我关注到报错中的最后一句话:

 UnicodeDecodeError: 'utf-89 in position 0: invalid continuation byte' codec can't decode byte 0xc

进行检索之后,找到这篇文章:

解决Python flask运行报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd2 in position 0: invalid continuation byte_51CTO博客_python出现unicodedecodeerror

原因:在python下lib文件夹里的socket.py文件中的name=gethostname()代码执行获取本机电脑名称时,遇到中文导致乱码报错。 

 我的主机名称确实是中文名称,修改过后重启,问题解决。

2023.6.15

超参数的概念:

在机器学习中,超参数(Hyperparameters)是指那些在训练模型之前需要手动设置的参数,它们不是模型的可训练参数(即权重和偏置),而是控制模型训练过程的参数。超参数的值会影响模型的性能和训练速度,因此需要通过试验和调整来找到最佳的超参数组合。

2023.6.22

pycharm报错:

   raise NotSupportedError(
django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.40).

原因是mysql版本太低与Django不兼容,但是mysql用的云服务器中的,不能修改,只能降低Django版本。

在终端下载相匹配的Django版本之后,发现还报错,也是这个错误,后来找到原因:

去setting里面修改,在setting的左侧面板找到project,去里面找到:

 选择对应的解释器,package就会加载出来,看一看Django版本是不是你想要的,如果不是,下载兼容版本的包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_坐看云起时_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值