django文件表单帮助您编写带有漂亮ajax上传的表单

django-file-form的Python项目详细描述


Build StatusVersion

Coverage StatusRequirements Status

License

django文件格式

django文件表单帮助您编写带有漂亮ajax上传的表单。

功能:

  • 您可以轻松地将ajax文件上载到表单中。
  • ajax上传的工作原理与html上传相同。
    • 这意味着您不必更改代码来支持ajax上传。
  • 支持单文件和多文件上传。

该项目位于github上。

适用于django 1.11-2.2。也适用于Python2.7、3.6-3.7

注意,版本0.3.0也支持django 1.8-1.10。

用法

1安装django文件格式

pip install django-file-form

2将应用程序添加到已安装的应用程序中

您必须包括“django_file_form”和“django_file_form.ajaxuploader”

INSTALLED_APPS=['django_file_form','django_file_form.ajaxuploader',]

3将应用程序添加到您的url中

在本例中,我们使用urlupload/。如果您愿意,可以使用其他url。

urlpatterns=patterns('',url(r'^upload/',include('django_file_form.urls')),)
< p> ^ {STR 1 } $ 4将FielFrMyMin添加到窗体< /强>

fromdjango_file_form.formsimportFileFormMixinclassExampleForm(FileFormMixin,forms.Form):pass

5添加上载的文件字段

fromdjango_file_form.formsimportFileFormMixin,UploadedFileFieldclassExampleForm(FileFormMixin,forms.Form):input_file=UploadedFileField()

6在模板中包含javascript和css

<scriptsrc="{% static "ajaxuploader/js/fileuploader.js"%}"></script><scriptsrc="{% static "file_form/file_form.js"%}"></script><linkrel="stylesheet"href="{% static "ajaxuploader/css/fileuploader.css"%}">

您还必须包括jquery

7调用inituploadfields javascript函数

<formid="example-form"method="POST"enctype="multipart/form-data">
    {% csrf_token %}
    {{ form }}
</form><script>$(function(){initUploadFields($('#example-form'));});</script>

如果表单有前缀,则按如下方式调用initUploadFields

// for example, with prefix 'abc'initUploadFields($('#example-form'),{prefix:'abc'});

有关表单前缀的更多信息,请参见Django documentation

8在模板中包含upload_template.html

{% include 'django_file_form/upload_template.html' %}

9处理上载的文件

classExampleFormView(generic.FormView):template_name='example_form.html'form_class=forms.ExampleFormdefform_valid(self,form):input_file=form.cleaned_data['input_file']returnsuper(ExampleFormView,self).form_valid(form)

10删除临时文件

classExampleFormView(generic.FormView):template_name='example_form.html'form_class=forms.ExampleFormdefform_valid(self,form):input_file=form.cleaned_data['input_file']form.delete_temporary_files()returnsuper(ExampleFormView,self).form_valid(form)

另请参见存储库中的testproject。

设置

settings.py

中的设置
  • file_form_must_login(真/假):

    • 用户必须登录才能上载文件。
    • 默认值是False
  • 文件格式上载目录(字符串):

    • 临时上载的目录。
    • 设置不是完整路径,但必须是MEDIA_ROOT的子目录。
    • 默认值是temp_uploads
  • file形式的文件存储(字符串):

    • 用于存储临时上载的类。
    • 默认值是django.core.files.storage.FileSystemStorage
  • file_form_upload_backend(字符串)

    • 用于上载后端的类。
    • 这使得你可以写你的上传后端。
    • 默认值是django_file_form.uploader.FileFormUploadBackend

变更日志

  • 0.5.0

    • 问题208:跳过python的pathlib安装>;=3.4(感谢simon maillard)
    • 问题212:支持django 2.2
  • ^{str 1}0.4.2美元(2019年3月3日)

    • 问题207:支持表单前缀(感谢iw108)
    • 问题201:修复没有ajax的多个文件上传(感谢lionqueen94)
  • ^{str 1}0.4.1美元(2019年1月5日)

    • 问题194:正确调用is_authenticated(感谢dureba)
  • ^{str 1}0.4.0美元(2018年8月3日)

    • 支持django 2.1和python 3.7
    • 问题173:添加i18n到上传小部件(感谢arman roomana)
  • ^{str 1}0.3.0美元(2017年12月6日)

    • 支持Django 2.0

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是否存在这样一种场景:Java7的Hashmap实现优于Java8的实现   java如何打印这些完整的数组?   java BuildException:未能执行aapt   java如何使用类。未知类型的集合返回的cast()   java准备语句返回错误的值   webview 安卓中的java显示身份验证对话框   java如何重命名列名JPA Hibernate   java查询从特定用户和特定时间段的Oracle表(通过比较原始表和备份表)中选择修改的行   java Youtube视频仅在三星S6设备上加载时自动暂停   未调用java RecyclerView getItemViewType   使用JSch setCommand执行带有源选项的java Shell ping命令时失败   java Hibernate:无法删除|删除分离的实例   Java Spring@MappedSuperclass字段作为子类中的@Id字段   java Android:确定单击了哪个按钮,因为该按钮未在xml中定义   如何计算java阵列内存使用率   使用Java查找按字母顺序排列的第一个字符串   javascript注销功能刷新页面,但页面仍已登录   当接口作为参数提供时,java依赖项注入不起作用   java中带原语的字符串扭曲