django网站前端开发-上传文件

django在做网站前端开发时,在网页上嵌入一个上传pdf文档的按钮,点击该按钮,弹出选择文件

在 Django 项目中,前端嵌入上传 PDF 文档的按钮并处理文件上传的基本步骤如下:

  1. 创建 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
    
  2. 创建 Django 表单:

    forms.py 文件中定义一个表单来处理文件上传:

    from django import forms
    from .models import Document
    
    class DocumentForm(forms.ModelForm):
        class Meta:
            model = Document
            fields = ('title', 'upload',)
    
  3. 创建视图来处理文件上传:

    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')
    
  4. 设置 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. 创建模板文件:

    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>
    
  6. 配置静态和媒体文件:

    在项目的 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 文档的功能。用户可以通过点击上传按钮选择文件,并将文件上传到服务器。上传的文件将保存在指定的目录中。