django项目知识点

1.创建日志

(1)在settings/dev.py文件中追加如下配置:

# 日志

LOGGING = {

    'version': 1, # 使用的日志模块的版本,目前官方提供的只有版本1,但是官方有可能会升级,为了避免升级出现的版本问题,所以这里固定为1

    'disable_existing_loggers': False, # 是否禁用其他的已经存在的日志功能?肯定不能,有可能有些第三方模块在调用,所以禁用了以后,第三方模块无法捕获自身出现的异常了。

    'formatters': { # 日志格式设置,verbose或者simple都是自定义的

        'verbose': { # 详细格式,适合用于开发人员不在场的情况下的日志记录。

            # 格式定义:https://docs.python.org/3/library/logging.html#logrecord-attributes

            # levelname 日志等级

            # asctime   发生时间

            # module    文件名

            # process   进程ID

            # thread    线程ID

            # message   异常信息

            'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',

            'style': '{', # 变量格式分隔符

        },

        'simple': { # 简单格式,适合用于开发人员在场的情况下的终端输出

            'format': '{levelname} {message}',

            'style': '{',

        },

    },

    'filters': {  # 过滤器

        'require_debug_true': {

            '()': 'django.utils.log.RequireDebugTrue',

        },

    },

    'handlers': { # 日志处理流程,console或者mail_admins都是自定义的。

        'console': {

            'level': 'DEBUG', # 设置当前日志处理流程中的日志最低等级

            'filters': ['require_debug_true'], # 当前日志处理流程的日志过滤

            'class': 'logging.StreamHandler',  # 当前日志处理流程的核心类,StreamHandler可以帮我们把日志信息输出到终端下

            'formatter': 'simple'              # 当前日志处理流程的日志格式

        },

        # 'mail_admins': {

        #     'level': 'ERROR',                  # 设置当前日志处理流程中的日志最低等级

        #     'class': 'django.utils.log.AdminEmailHandler',  # AdminEmailHandler可以帮我们把日志信息输出到管理员邮箱中。

        #     'filters': ['special']             # 当前日志处理流程的日志过滤

        # }

        'file': {

            'level': 'INFO',

            'class': 'logging.handlers.RotatingFileHandler',

            # 日志位置,日志文件名,日志保存目录logs必须手动创建,注意目录位置,跟主应用统计目录,所以添加parent

            'filename': BASE_DIR.parent / "logs/fuguang.log",//文件夹路径以及文件要设置对

            # 单个日志文件的最大值,这里我们设置300M

            'maxBytes': 300 * 1024 * 1024,

            # 备份日志文件的数量,设置最大日志数量为10

            'backupCount': 10,

            # 日志格式:详细格式

            'formatter': 'verbose'

        },

    },

    'loggers': {  # 日志处理的命名空间

        'django': {

            'handlers': ['console','file'], # 当基于django命名空间写入日志时,调用那几个日志处理流程

            'propagate': True,   # 是否在django命名空间对应的日志处理流程结束以后,冒泡通知其他的日志功能。True表示允许

        },

    }

}

(2)大概是这样的文件夹路径

2.使用redis

(1)settings配置redis

3.发短信

(1)pip install ronglian_sms_sdk

(2)配置settings

(3)写一个方法函数

(4)视图调用

4.JWT认证

(1)pip install djangorestframework-simplejwt

(2)pip install cryptography==41.0.5

(3)配置settings

(4)调用jwt

(5)指定自定义载荷信息,序列化器(更安全)

(6)登录视图调用

5.celery 异步

(1)pip3 install -U celery

(2)pip install eventlet

(3)celery作为一个单独项目运行

(4)配置main.py

(5)配置文件settings.py

(6)创建任务文件sms/tasks.py,并创建任务

(7))运行celery

celery -A mycelery.main  worker -P eventlet -c 2 -l info

0.celery: 这是启动 Celery 命令行工具的命令。

1.-A mycelery.main: 这个参数指定了 Celery 应用的入口模块。mycelery 是 Python 包的名称,而 main 是该包中包含 Celery 应用实例的 Python 文件。这个实例通常是通过 app = Celery() 这样的语句创建的。

2.worker: 这个参数告诉 Celery 启动一个工作进程(worker),而不是其他类型的进程,比如 Celery 的控制面板或事件服务器等。

3.-P eventlet: 这个参数指定了工作进程使用的进程池的类型。eventlet 是一个基于协程的并发库,它允许 Celery 工作进程以非阻塞的方式运行,从而提高并发处理能力。

4.-c 2: 这个参数指定了工作进程应该运行的并发数,也就是同时可以执行的任务数量。在这个例子中,2 表示工作进程将使用两个并发任务。

5.-l info: 这个参数设置了日志记录的级别。info 表示日志将记录信息级别的消息,这对于了解 Celery 工作进程的运行情况是有帮助的。

(8)完善main.py

6.用异步发短信

(1)配置settings容联云

(2)写一个发短信的方法函数

(3)在异步任务调用

(4)写视图

(5)写路由

7.admin站点

(1)例如课程管理:

(2)创建模型类

(3)安装simpleui

pip install django-simpleui

(4)配置settings

(5)主路由打开admin

(6)安装ckedtior:富文本编辑器

pip install django-ckeditor

配置settings

# ckeditor富文本编辑器配置

# 上传文件的存储路径

CKEDITOR_UPLOAD_PATH = "ckeditor/" //创建ckeditor文件夹

# 工具条配置

CKEDITOR_CONFIGS = {

    'default': {

        # 'toolbar': 'full', # full 显示全部工具 Basic 显示基本工具

        'toolbar': 'Custom',  # 自定义工具条的显示数量

        'toolbar_Custom': [

            ['Bold', 'Italic', 'Underline', 'Image', 'Styles','Format', 'Font', 'Fontsize'],

            ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],

            ['Link', 'Unlink'],

            ['RemoveFormat', 'Source']

        ],

        # 设置编辑器的高度

        'height': 300,

    },

}

(7)配置图片

7.1 配置settings

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

7.2 创建文件夹目录

7.3 创建模型类

(8)在主路由的url中,配置ckeditor

path('ckeditor/', include('ckeditor_uploader.urls')),

(9)自定义管理站点的展示内容

(10)Admin站点配置,在settings配置

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值