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

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

Django是一个高水平的Python Web框架,鼓励快速开发和简洁、务实的设计。它由经验丰富的开发人员构建,解决了网络开发的许多麻烦,因此你可以专注于编写你的应用程序,而不需要重新发明车轮。它是免费和开源的。

如何在Django中使用FileExtensionValidator

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

首先创建新项目。

django-admin startproject fileuploader
cd fileuploader

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

python manage.py startapp main

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

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

语法 :-

FileExtensionValidator(allowed_extensions, message, code)

如果value.name(value是一个文件)的扩展名在allowed_extensions中没有找到,则引发ValidationError,代码为’invalid_extension’。扩展名与allowed_extensions进行大小写不敏感的比较。

models.py

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

forms.py

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

views.py

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})

index.html

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h2>Welcome To GFG</h2>
<form method="post">
    {% csrf_token %}
      {{form}}
  <button type="submit">Upload</button>
</form>
</body>
</html>

用户只能在这个文件栏上传pdf文件。否则就会出现异常。此外,对于这样的要求,我们总是建议添加客户端验证。这篇文章说明了如何在服务器端验证文件上传。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Django 教程