Django - Import&Export

Django - Import&Export 首页 / Django入门教程 / Django - Import&Export

django-import-export 库为您的django项目提供了一个 import_export 应用。 您可以将 import_export 应用程序与Django Admin一起使用。它将通过 import export 按钮添加函数的到 admin 仪表板。 可以从 csv,xml,excel,json 等导入模型数据。 您还可以将数据导出为多种文件格式,例如 csv,xls,xlsx,tsv,ods,json,yaml html

您可以通过 4个简单的步骤轻松地添加导入导出应用程序:

  • 步骤1:通过 pip 安装 django-import-export
  • 步骤2:在 settings.py 中将 import_export 添加到 INSTALLED_APPS
  • 步骤3:在 admin.py 中导入并继承 ImportExportModelAdmin
  • 步骤4:在 settings.py (如果需要)下设置 import_export 应用权限
django import export

安装django-import-export

要安装django-import-export库,只需运行:

pip install django-import-export

将import_export应用添加到项目settings.py

现在,您必须在 INSTALLED_APPS 属性列表下的项目 settings.py 中添加 import_export 应用。注意,由于Python的命名规则,"-"被替换为" _"。

INSTALLED_APPS = [
        ...
        'import_export',
]                     

Django Import Export 样本项目

无涯教程将在 myapp 下使用一个名为 Blog 的示例模型类。

models.py

    from django.db import models                              
    class Blog(models.Model):
        title = models.CharField(max_length=120)
        author = models.CharField(max_length=120)
        date_of_publishing = models.DateField(auto_now_add=True)
        content = models.TextField()
        def __str__(self):
            return self.title           

现在,只需导入并继承 admin.py 中的 ImportExportModelAdmin

admin.py

    from import_export.admin import ImportExportModelAdmin
    from django.contrib import admin
    from .models import Blog
    
    class BlogAdmin(ImportExportModelAdmin, admin.ModelAdmin):
        ...
        
    admin.site.register(Blog, BlogAdmin)  

注意:在多重继承序列中, ImportExportModelAdmin 应该在 admin.ModelAdmin 之前,以避免发生 MRO (方法解析顺序)错误。

Importing

django import csv

Exporting

django import csv


Django import_export应用权限

使用上述代码,所有用户都可以在管理界面下访问 django import  export函数。 为了限制具有add,view,change或delete权限的用户的访问权限,请在项目 settings.py 中添加以下代码。

IMPORT_EXPORT_IMPORT_PERMISSION_CODE = 'delete' IMPORT_EXPORT_EXPORT_PERMISSION_CODE = 'delete'

您可以使用其他权限来代替删除,例如"add","view"或"change"。

无涯教程网

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术与商业案例解读 -〔徐飞〕

黄勇的OKR实战笔记 -〔黄勇〕

即时消息技术剖析与实战 -〔袁武林〕

JavaScript核心原理解析 -〔周爱民〕

职场求生攻略 -〔臧萌〕

用户体验设计实战课 -〔相辉〕

Django快速开发实战 -〔吕召刚〕

如何讲好一堂课 -〔薛雨〕

结构思考力 · 透过结构看表达 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)