Django实现文件上传、文件列表查看、修改、限流和日志记录
本章先简单实现文件的上传,后续会将标题的功能一 一添加上去实现,并且给出远程服务器的不同连接方式【密码和秘钥】,欢迎继续关注。
安装了Django框架
pip install django
创建一个Django项目
django-admin startproject file_upload_service
创建Django应用
进入项目目录并创建一个Django应用:
cd file_upload_service
python manage.py startapp file_upload
配置视图文件
在file_upload_service/file_upload/views.py文件中编写视图函数来处理文件上传:
from django.shortcuts import render
def upload_file(request):
if request.method == 'POST':
uploaded_file = request.FILES['file']
# 在这里实现将文件上传到远程服务器的逻辑
# 你可以使用第三方库(如paramiko)来实现远程文件上传
with open('uploaded_files/' + uploaded_file.name, 'wb+') as destination:
for chunk in uploaded_file.chunks():
destination.write(chunk)
return render(request, 'file_upload/upload_success.html')
return render(request, 'file_upload/upload.html')
路由urls.py配置
在file_upload_service/file_upload/urls.py文件中添加URL配置:
from django.urls import path
from . import views
urlpatterns = [
path('upload/', views.upload_file, name='upload_file'),
]
在file_upload_service/file_upload_service/urls.py文件中添加应用的URL配置
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('file_upload/', include('file_upload.urls')),
]
创建模板文件
在file_upload_service/file_upload/templates/file_upload目录下创建upload.html和upload_success.html模板文件:
upload.html
upload.html模板文件用于展示文件上传表单
<!DOCTYPE html>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<h2>上传文件</h2>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="file">
<button type="submit">上传</button>
</form>
</body>
</html>
upload_success.html
upload_success.html模板文件用于展示文件上传成功页面:
<!DOCTYPE html>
<html>
<head>
<title>上传成功</title>
</head>
<body>
<h2>文件上传成功!</h2>
</body>
</html>
运行Django开发服务器
python manage.py runserver 0.0.0.0:8080