xadmin引入django-qiniu-storage七牛云存储图片

一、注册七牛云账号:

1、注册并完成实名认证

2、创建公有存储空间

 

二、安装django-qiniu-storage:

pip install django-qiniu-storage

安装django-qiniu-storage库

https://github.com/glasslion/django-qiniu-storage

GitHub主页

 

三、配置demo/settings.py:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'product.apps.ProductConfig',

'xadmin',
'crispy_forms',
'reversion',
# 添加django-xadmin

'import_export',
# 导入导出

'ckeditor',
'ckeditor_uploader',
# 富文本编辑器

'rest_framework',
# django-rest-framework

'qiniustorage',
# 七牛云存储
]



# MEDIA_URL = '/media/'
# MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# 定义图片存放的目录

QINIU_ACCESS_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
# 七牛给开发者分配的AccessKey
QINIU_SECRET_KEY = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY'
# 七牛给开发者分配的Secret
QINIU_BUCKET_NAME = 'abc123'
# 用来存放文件的七牛空间(bucket)的名字
QINIU_BUCKET_DOMAIN = 'xxxxxxxx.bkt.clouddn.com/'
# 七牛空间(bucket)的域名,别遗漏了后面的/
DEFAULT_FILE_STORAGE = 'qiniustorage.backends.QiniuStorage'
# 只用七牛托管动态生成的文件(例如用户上传的文件)

MEDIA_URL = QINIU_BUCKET_DOMAIN
MEDIA_ROOT = QINIU_BUCKET_DOMAIN

 

三、模型product/models.py:

from ckeditor_uploader.fields import RichTextUploadingField
from django.db import models

# Create your models here.


class ProductInfo(models.Model):
# 产品表

product_name = models.CharField(max_length=32, verbose_name="产品名称")
# 产品名称
product_picture = models.ImageField(blank=True,
null=True,
upload_to="pictures/%Y%m%d",
max_length=255,
verbose_name="产品图片")
# 产品图片,数据库里面存储的是图片的相对路径
product_describe = models.CharField(max_length=255, verbose_name="产品描述")
# 产品描述
product_manager = models.CharField(max_length=11, verbose_name="产品经理")
# 产品经理
product_detail = RichTextUploadingField(verbose_name="产品详情", default="", blank=True, null=True,)
# 产品详情,带有上传图片功能的富文本编辑器
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
# 创建时间
update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="修改时间")
# 修改时间

class Meta:
db_table = 'product_info'
# 设置表名,默认表名是:应用名称_模型类名
# 带有应用名的表名太长了

verbose_name = '产品列表'
verbose_name_plural = "产品列表"

def __str__(self):
return self.product_name

 

四、admin后台页面:

python manage.py runserver

启动服务

http://127.0.0.1:8000/admin/

 

 五、七牛云存储空间:

posted @ 2019-08-21 18:36  此生不换Yang  阅读(1031)  评论(0编辑  收藏  举报