分类目录归档:Django-Dev

[ django下载文件浏览器显示进度条 ]


django使用流响应文件, 浏览器会有下载进度条, 可以点击进行暂停, 继续

后端

    @action(detail=False, methods=['get'], schema=AutoDocSchema())
    def get_big_files(self, request):
        def file_iterator(file_path, start_byte=0, chunk_size=256):
            with open(file_path, 'rb') as f:
                f.seek(

< Read more >

[ celery指定时间执行 ]


django中的celery任务指定时间执行

我这里是发送邮件, 定时晚上6点执行

from datetime import datetime, timedelta
from django.conf import settings
from django.utils import timezone
from backend.cews.tasks import send_email_when_check_eform
import pytz

def schedule_email(recipient_email, subject, message):
    """

< Read more >

[ celery定时任务 ]


django中celery使用定时任务

celery_app.py

import os

from celery import Celery

# set the default Django settings module for the 'celery' program.
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local")

app = Celery("backend")

# Using a string here me

< Read more >

[ celery重试机制 ]


python中的celery使用

开启重试需要添加 bind=True参数 才能绑定到self来进行重试

@celery_app.task(bind=True, max_retries=3, default_retry_delay=5)
def send_email_when_check_eform(self, recipient_email, subject, message):
    password = 'G@9742ns'
    server_email = 'no-reply@gnstec.com.hk'
    from_addr = forma

< Read more >

[ python中使用泛型 ]


泛型TypeVar

我这里是定义数据结构模板, 来限制用户的dict内容

from ninja import Schema
from typing import TypeVar, Generic

T = TypeVar('T')

class ApiResSchema(Schema, Generic[T]):
    data: T = ""
    code: int = 0
    msg: str = ""

django-ninja使用的时候可以通过[]写入类型, 框架自动序列化

@message_router.get(pat

< Read more >