zoukankan      html  css  js  c++  java
  • 第三百一十九节,Django框架,文件上传

    第三百一十九节,Django框架,文件上传

    1、自定义上传【推荐】

    请求对象.FILES.get()获取上传文件的对象
    上传对象.name获取上传文件名称
    上传对象.chunks()获取上传数据包,字节码类型

    html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" type="text/css" href="/static/css/tou.css">
    </head>
    <body>
    
    <form action="/bugarticles/" enctype="multipart/form-data" method="post">
        <input type="file" name="shch"/>
        <input type="submit" value="上传"/>
    </form>
    
    
    </body>
    </html>

    逻辑处理

    from django.shortcuts import render,redirect
    import os
    
    #逻辑处理模块
    
    def special(request):
        if request.method == "POST":
            obj = request.FILES.get('shch')                  #获取上传文件对象
    
            f = open(os.path.join("app1", obj.name), 'wb')   #以读写字节模式打开,存在覆盖没有创建
    
            for chunk in obj.chunks():                      #循环文件数据块
                f.write(chunk)                              #写入文件
            f.close()                                       #关闭打开文件
    
        return render(request, 'app1/index.html',locals())

    内置方式

    表单验证模块

    class FileForm(forms.Form):
        ExcelFile = forms.FileField()

    数据库操作Models模块

    from django.db import models
    
    class UploadFile(models.Model):
        userid = models.CharField(max_length = 30)
        file = models.FileField(upload_to = './upload/')
        date = models.DateTimeField(auto_now_add=True)

    逻辑处理模块

    def UploadFile(request):
        uf = AssetForm.FileForm(request.POST,request.FILES)
        if uf.is_valid():
                upload = models.UploadFile()
                upload.userid = 1
                upload.file = uf.cleaned_data['ExcelFile']
                upload.save()
                
                print upload.file
  • 相关阅读:
    如何让pc端网站在手机上可以等比缩放的整个显示
    CSS
    常见的IE布局兼容问题
    CSS : 使用 z-index 的前提
    CSS : object-fit 和 object-position实现 图片或视频自适应
    CSS
    vscode
    如何识别Form字段中一对多或者多对多字段
    window.open简单使用
    由一个模型拿它的名字、app的名字、字段对象以及字段对象中的属性
  • 原文地址:https://www.cnblogs.com/adc8868/p/7218567.html
Copyright © 2011-2022 走看看