Django学习记录之——使用form表单实现文件上传和保存

文件上传
    - form表单上传文件的必要条件!!!
    - 在前端form表单中添加以下属性
        method="post", enctype="multipart/form-data"
    
    - 实现方法
        def test_file(request):
            if request.method == 'POST':
                print(request.POST)  # <QueryDict: {'username': ['wcy']}>无法获取文件 只能获取普通文本信息
                print(request.FILES)  # <MultiValueDict: {'file': [<InMemoryUploadedFile: 积分.jpg (image/jpeg)>]}>
                file_obj = request.FILES.get('file')  # 获取文件对象
                with open(file_obj.name, 'wb') as f:
                    # 只能按行保存!
                    for line in file_obj:
                        f.write(line)
            return render(request, 'file.html')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django中的可以使用Django自带的模块(forms)来创建。使用Django模块可以简化的创建和验证,同时也可以提供更好的数据安全性。 下面是使用Django模块创建的步骤: 1. 创建一个forms.py文件,并导入forms模块: ``` from django import forms ``` 2. 创建一个类,并继承自forms.Form类: ``` class MyForm(forms.Form): field1 = forms.CharField(label='Field1', max_length=100) field2 = forms.EmailField(label='Field2') ``` 3. 在视图函数中实例化类,并将其作为参数递给模板: ``` from .forms import MyForm def my_view(request): form = MyForm() return render(request, 'my_template.html', {'form': form}) ``` 4. 在模板中渲染: ``` <form method="POST" action=""> {% csrf_token %} {{ form.as_p }} <button type="submit">Submit</button> </form> ``` 注意:form.as_p会将渲染成一个p标签。 5. 在视图函数中处理提交: ``` def my_view(request): if request.method == 'POST': form = MyForm(request.POST) if form.is_valid(): # 处理数据 field1 = form.cleaned_data['field1'] field2 = form.cleaned_data['field2'] # ... return redirect('success') else: form = MyForm() return render(request, 'my_template.html', {'form': form}) ``` 注意:使用form.is_valid()来验证是否有效,如果有效则可以使用form.cleaned_data来获取数据。 以上就是使用Django模块创建的基本步骤,更多详细信息可以查看Django官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值