xadmin引入django-qiniu-storage七牛云存储图片
2024-09-01 16:19:08
一、注册七牛云账号:
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
启动服务
五、七牛云存储空间:
最新文章
- bootstrap-table分页第二篇 延续上一篇的
- bootstrap与Select2使用小结
- VS2012 自动为类文件添加头注释
- 另一种在WINFORM中使用XNA的方法
- sqlite嵌入式数据库C语言基本操作(1)
- 关于python文件操作
- Spring ApplicationContextAware获取上下文
- union的用法
- YII数据库增删查改操作
- [原创]基于Zynq AXI-GPIO Standalone &; Linux 例程
- mysqlGTID主从配置
- Learning-Python【11】:函数嵌套及作用域
- ubuntu16.04安装maven
- python 全栈开发,Day136(爬虫系列之第3章-Selenium模块)
- python2脚本批量转成python3
- android中YUV转RGB的方法
- 【java编程】java对象copy
- leetcode 75. 颜色分类 JAVA
- Java入门:基础算法之产生随机数
- Kubernetes 1.5集成heapster