文件上传:
(1)修改app-->views:
导入:
from django.shortcuts import render
from django.views.generic import View
from django.http import HttpResponse
创建类:
class IndexView(View):
#创建get访问,
def get(self,request):
return render(request,"index.html")
#创建post数据上传
def post(self,request):
myfile =request.FILES.get('myfile') #FILES=文件夹
with open('somfile.txt','wb')as fp:
for chunk in myfile.chunks():
fp.write(chunk)
return HttpResponse('成功')
(2)创建templates-->index.html
<body>
<form action="" method="post" enctype="multipart/form-data"> #enctype=一种编程方式
<input type="file" name="myfile">
<input type="submit" value="提交">
</form>
</body>
(3)修改urls
from app import views
urlpatterns = [
path('', views.IndexView.as_view()),
]
二,处理上传文件
(1)修改app-->model:
class Article(models.Model):
title =models.CharField(max_length=50)
content =models.TextField()
#thumbnial=巨型文件,FileField()=上传文件,upload_to=上传
thumbnial = models.FileField(upload_to='shangc')
新建文件夹:shangc
(2)链接数据库setting>>+app-->>makemigrations-->>migrate
检查数据库中是否有此数据。
(3)修改app>>views
def post(self,request):
title =request.POST.get('title')
content=request.POST.get('content')
thumbnial=request.FILES.get('thumbnial')
#保存到数据库中
Article.objects.check(title=title,content=content,thumbnial=thumbnial)
return HttpResponse("成功")
(3)修改urls
<form action="" method="post" enctype="multipart/form-data">
<input type="text" name="myfile">
<input type="text" name="conrent">
<input type="file" name="thumbnial">
<input type="submit" value="提交">
</form>
三,限制文件扩展名
(1)修改app>>models
from django.core import validators
validators=检查
thumbnial = models.FileField(upload_to='shangc',validators=[validators.FileExtensionValidator(['txt'],message='thumbnial必须是TXT格式')])
。。。。未完成