📜  FileExtensionValidator – 验证 Django 中的文件扩展名

📅  最后修改于: 2022-05-13 01:55:10.110000             🧑  作者: Mango

FileExtensionValidator – 验证 Django 中的文件扩展名

Django 是一个高级Python Web 框架,它鼓励快速开发和简洁实用的设计。它由经验丰富的开发人员构建,解决了 Web 开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费和开源的。

如何在 Django 中使用 FileExtensionValidator?

为了演示 FileExtensionValidator 的使用,我们将创建一个文件上传应用程序,它将在后端验证“pdf”文件。

首先创建新项目。

django-admin startproject fileuploader
cd fileuploader

然后在项目中创建新的应用程序

python manage.py startapp main

然后在settings.py 中的INSTALLED_APPS 中添加应用程序名称



句法 :-

FileExtensionValidator(allowed_extensions, message, code)

如果在 allowed_extensions 中找不到 value.name 的扩展名(值是文件),则会引发代码为“invalid_extension”的 ValidationError。扩展名与 allowed_extensions 不区分大小写进行比较。

模型.py

Python3
from django.core.validators import FileExtensionValidator
class Post(models.Model):
    PDF = models.FileField(null=True, 
                           blank=True, 
                           validators=[FileExtensionValidator( ['pdf'] ) ])


Python3
from django.forms import ModelForm
from .models import *
from django import forms
  
  
class PostForm(ModelForm):
    class Meta:
        model = Post
        fields = __all__


Python3
from django.shortcuts import render,HttpResponse
from .forms import *
# Create your views here.
  
def home(request):
    form = PostForm()
    return render(request,"main/index.html",{"form":form})


HTML



Page Title


Welcome To GFG

    {% csrf_token %}       {{form}}   


表格.py

蟒蛇3

from django.forms import ModelForm
from .models import *
from django import forms
  
  
class PostForm(ModelForm):
    class Meta:
        model = Post
        fields = __all__

视图.py

蟒蛇3

from django.shortcuts import render,HttpResponse
from .forms import *
# Create your views here.
  
def home(request):
    form = PostForm()
    return render(request,"main/index.html",{"form":form})

索引.html

HTML




Page Title


Welcome To GFG

    {% csrf_token %}       {{form}}   

用户只能在此文件字段中上传 pdf 文件。否则会抛出异常。此外,始终建议为此类要求添加客户端验证。本文说明了如何在服务器端验证文件上传。