优草派  >   Python

Django Admin 上传文件到七牛云的示例代码

徐晨光            来源:优草派

七牛云是一家国内领先的云服务提供商,提供了各种云服务,包括对象存储、数据处理、数据分析等。在文件存储方面,七牛云的优势非常明显。

Django Admin 上传文件到七牛云的示例代码

Django是一个基于Python的Web框架,非常适合快速开发Web应用。Django自带了一个管理后台(Admin),方便进行数据管理。本文介绍如何在Django Admin中上传文件到七牛云。

首先,需要安装七牛云的Python SDK,可以使用pip安装:

```python

pip install qiniu

```

接着,需要在Django的settings.py文件中配置七牛云的Access Key和Secret Key:

```python

QINIU_ACCESS_KEY = 'your_access_key'

QINIU_SECRET_KEY = 'your_secret_key'

```

然后,我们可以在models.py中定义一个模型来存储上传的文件,并在Admin中注册它:

```python

from django.db import models

from qiniu import Auth, put_file, etag

from yourapp.settings import QINIU_ACCESS_KEY, QINIU_SECRET_KEY

auth = Auth(QINIU_ACCESS_KEY, QINIU_SECRET_KEY)

bucket_domain = 'your_bucket_domain'

class UploadedFile(models.Model):

name = models.CharField(max_length=100)

file = models.FileField(upload_to='files/')

url = models.CharField(max_length=255, null=True, blank=True)

key = models.CharField(max_length=255, null=True, blank=True)

def save(self, *args, **kwargs):

token = auth.upload_token(bucket_domain)

ret, info = put_file(token, self.file.name, self.file)

if info.status_code == 200:

self.key = ret['key']

self.url = 'http://' + bucket_domain + '/' + self.key

super().save(*args, **kwargs)

```

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。