六,表单02_文件上传+传入数据库+限制文件扩展名

文件上传:

      (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格式')])

 

。。。。未完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值