赞
踩
django在做网站前端开发时,在网页上嵌入一个上传pdf文档的按钮,点击该按钮,弹出选择文件
在 Django 项目中,前端嵌入上传 PDF 文档的按钮并处理文件上传的基本步骤如下:
创建 Django 应用和模型:
1.1. 创建 Django 应用:
python manage.py startapp myapp
1.2. 在 models.py
中定义一个模型来保存上传的文件:
from django.db import models
class Document(models.Model):
title = models.CharField(max_length=200)
upload = models.FileField(upload_to='uploads/')
uploaded_at = models.DateTimeField(auto_now_add=True)
1.3. 运行迁移命令以创建数据库表:
python manage.py makemigrations
python manage.py migrate
创建 Django 表单:
在 forms.py
文件中定义一个表单来处理文件上传:
from django import forms
from .models import Document
class DocumentForm(forms.ModelForm):
class Meta:
model = Document
fields = ('title', 'upload',)
创建视图来处理文件上传:
在 views.py
文件中定义视图:
from django.shortcuts import render, redirect
from .forms import DocumentForm
def upload_file(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('success')
else:
form = DocumentForm()
return render(request, 'upload.html', {'form': form})
def success(request):
return render(request, 'success.html')
设置 URL 路由:
在 urls.py
中定义 URL 路由:
from django.urls import path
from . import views
urlpatterns = [
path('upload/', views.upload_file, name='upload'),
path('success/', views.success, name='success'),
]
创建模板文件:
5.1. 创建 templates/upload.html
文件,包含文件上传的表单:
<!DOCTYPE html>
<html>
<head>
<title>Upload PDF</title>
</head>
<body>
<h1>Upload PDF</h1>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload</button>
</form>
</body>
</html>
5.2. 创建 templates/success.html
文件,显示上传成功的消息:
<!DOCTYPE html>
<html>
<head>
<title>Success</title>
</head>
<body>
<h1>File uploaded successfully!</h1>
<a href="{% url 'upload' %}">Upload another file</a>
</body>
</html>
配置静态和媒体文件:
在项目的 settings.py
文件中配置媒体文件的路径:
import os
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
在项目的 urls.py
文件中添加媒体文件的路由:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# 其他路径
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
通过以上步骤,您已经在 Django 项目中创建了一个允许用户上传 PDF 文档的功能。用户可以通过点击上传按钮选择文件,并将文件上传到服务器。上传的文件将保存在指定的目录中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。