介绍
日志记录是非常实用的开发工具,之前学的教程里没介绍过,还是用chatgpt的时候它告诉我的。
用下来发现和android的log工具非常像,甚至更加好用。
logging在普通python程序中也可以使用,在django中则配置更加方便
本文也完全根据chatgpt教学整理成笔记完成
django中使用logging
下面是一个例子
#在setting文件中配置日志记录器格式
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{lev...
django的自定义用户,自定义用户验证
介绍
django的自定义用户和自定义用户验证是常用操作,但是新手很容易搞迷糊
本文整理一下
自定义用户
# 先定义用户model
from django.contrib.auth.models import AbstractUser
class UserProfile(AbstractUser):
nick_name = models.CharField(max_length=50, verbose_name=u"昵称", default="")
birday = models.DateField(verbose_name=u"生日", null=True, blank=True)
gender = models.CharField(max_l...
django用QQ邮箱发送SMTP邮件踩坑笔记
介绍
django发送邮件是比较常见的需求,国内比较普遍使用的QQ的SMTP发送邮件服务
但是网上教程还是挺多坑,尝试半天终于成功了,这里记录一下
QQ邮箱配置
QQ邮箱设置里点击管理服务
生成授权码
点击查看配置SMTP和IMAP方法,其实下面讲不对
具体配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 25 # 关键这个端口,必须写25,按官网的端口都没用
EMAIL_USE_TLS = False
EMAIL_HOST_USER = '' # 你的邮箱地址
EMAIL_HOST_PASSWORD = ...
django开发JWT登录功能流程梳理
django开发JWT登录功能流程梳理
jwt介绍
JWT登录功能,就是返回给用户JWT验证信息做token。后端验证用户信息的时候对信息解密,验证用户是否正确。
jwt分为三部分,header定义加密算法,payload是用户信息,signature是前两部分的base64字符串后再加密。三部分再base64中间用点号连接组成JWT
jwt可以是对称加密也可以是非对称加密(私钥加密,公钥解密),秘钥要保存在服务器端不能泄露
登录流程
验证码表
用户表
JWTtoken生成
安装依赖库:
https://github.com/jpadilla/django-rest-framework-jwt
注意上面项目其实已经不再维护,不过现在还可以用。如果更高版本的django可以考虑使用下面的库
https://github...
django项目结合Vue的生产发布梳理
介绍
django的生产发布与开发环境还是很不一样,本文梳理一下生产发布具体有哪些配置。
statci静态资源收集
django中有很多app,自己建的或者第三方的。这些app都有自己的static目录。
开发的时候,当文件路径是/static的文件,django会去各个app的static目录下寻找有没有对应文件
但是生产的时候,需要执行collect命令,将各个app下的static目录下的文件复制到指定的STATIC_ROOT目录下,然后添加路由就是static路径就到STATIC_ROOT目录下寻找了
python manage.py collectstatic
下面的STATIC_ROOT路径有两种配置,
一种是移动到项目之外的文件夹,这等于说是让nginx来路由静态文件
一种是我这里写的移动到项目的www/static目录下
sett...
django验证码组件插件django-simple-captcha的使用
介绍
官网如下 [https://github.com/mbi/django-simple-captcha](https://github.com/mbi/django-simple-captcha https://django-simple-captcha.readthedocs.io/en/latest/ 实现效果就是,调用接口返回一个验证码图片和一个key值。同时后台数据库会创建验证码code和对应key值和有效期 key值在前端是隐藏的,随着提交接口一起发送到后端,在数据库里筛选出对应hashkey的code与前端传过来的code是否一致,并且在有效期内。
本文会介绍使用中的一些坑,网上好像搜不到。
安装
因为我的项目是django3.2,所以按官网介绍,支持3.2的最后一个版本是5.2。不要安装5.19或者6.0,因为会自动卸载你的d...