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(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文件。否则就会出现异常。此外,对于这样的要求,我们总是建议添加客户端验证。这篇文章说明了如何在服务器端验证文件上传。