Python+django实现简单的文件上传
时间: 2023-11-29 22:19:35 浏览: 36
好的,下面是Python+Django实现文件上传的简单步骤:
1. 创建Django项目和应用
可以使用Django自带的命令创建:
```
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
```
2. 配置上传文件的路径
在`settings.py`中配置上传文件的路径:
```
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
```
3. 创建文件上传表单
在`myapp`目录下,创建一个`forms.py`文件,定义一个文件上传表单:
```
from django import forms
class UploadForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
```
4. 创建文件上传视图
在`myapp`目录下,创建一个`views.py`文件,定义一个文件上传视图:
```
from django.shortcuts import render
from django.http import HttpResponseRedirect
from myapp.forms import UploadForm
def upload(request):
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid():
title = form.cleaned_data['title']
file = form.cleaned_data['file']
# 处理上传的文件
return HttpResponseRedirect('/success/')
else:
form = UploadForm()
return render(request, 'upload.html', {'form': form})
```
5. 创建文件上传模板
在`myapp`目录下,创建一个`templates`目录,并在其中创建一个`upload.html`模板文件,用于渲染文件上传表单:
```
{% extends 'base.html' %}
{% block content %}
<h1>Upload File</h1>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Upload">
</form>
{% endblock %}
```
6. 配置URL路由
在`myapp`目录下,创建一个`urls.py`文件,定义文件上传视图的URL路由:
```
from django.urls import path
from myapp.views import upload
urlpatterns = [
path('upload/', upload, name='upload'),
]
```
7. 运行Django服务器
在命令行中执行如下命令,启动Django服务器:
```
python manage.py runserver
```
现在可以访问`http://127.0.0.1:8000/myapp/upload/`,上传文件并处理。