是举个django上传目录的项目
时间: 2023-06-18 10:06:54 浏览: 71
好的,下面是一个简单的 Django 项目,实现了上传目录功能:
1. 首先,创建一个 Django 项目并在其中创建一个应用:
```
$ django-admin startproject upload_dir_project
$ cd upload_dir_project
$ python manage.py startapp upload_dir_app
```
2. 在 `upload_dir_app` 应用中创建一个视图函数 `upload_dir_view`,用来处理上传目录的请求:
```python
# upload_dir_app/views.py
import os
from django.shortcuts import render
from django.conf import settings
def upload_dir_view(request):
if request.method == 'POST':
uploaded_file = request.FILES['file']
fs = FileSystemStorage()
save_path = os.path.join(settings.MEDIA_ROOT, uploaded_file.name)
fs.save(save_path, uploaded_file)
return render(request, 'upload_dir_app/success.html')
return render(request, 'upload_dir_app/upload.html')
```
3. 在 `upload_dir_app/templates/upload.html` 中创建一个表单,用来上传目录:
```html
<!-- upload_dir_app/templates/upload.html -->
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="file" multiple webkitdirectory directory>
<button type="submit">Upload</button>
</form>
```
注意,这里的 `input` 元素中的 `webkitdirectory` 和 `directory` 属性用来指示上传的文件是一个目录。
4. 在 `upload_dir_app/templates/success.html` 中创建一个成功页面,用来展示上传成功的信息:
```html
<!-- upload_dir_app/templates/success.html -->
<h1>Upload successful!</h1>
```
5. 配置项目的 `urls.py`,将 `/upload/` 路径映射到 `upload_dir_view` 视图函数:
```python
# upload_dir_project/urls.py
from django.urls import path
from upload_dir_app.views import upload_dir_view
urlpatterns = [
path('upload/', upload_dir_view, name='upload'),
]
```
6. 最后,配置项目的 `settings.py`,指定上传目录的存储位置:
```python
# upload_dir_project/settings.py
# ...
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
```
这里指定上传目录存储在项目根目录下的 `media` 目录中。
现在,启动 Django 服务器并访问 `http://localhost:8000/upload/`,就可以看到一个上传目录的界面。选择一个目录并提交表单,上传成功后会跳转到成功页面。上传的目录会保存到指定的目录中,可以在 `media` 目录下查看。
阅读全文