新建项目

使用pycharm新建项目,然后新建app

创建完毕之后安装所需要的包

pip install django-qiniu-storage qiniu

这里我们使用的富文本编辑器是百度的DUEditor, DUEditor下载地址 https://github.com/dhcn/DUEditor

下载DUEditor源码之后,将源码文件夹里的DUEditor复制到我们项目的根目录,然后在INSTALLED_APPS中安装

INSTALLED_APPS = [
    ...
    'testapp',  # 创建的app
    'DUEditor',  # 富文本编辑器
    'qiniustorage',  # 七牛云
]

准备就绪之后创建数据库

# testapp/models.py
from django.db import models
from DUEditor.models import UEditorField
# Create your models here.

class Test(models.Model):
    img = models.ImageField('图片',upload_to='media/')
    fields = models.FileField('文件', upload_to='media/')
    content = UEditorField()

然后在admin.py中把模型注册一下

from .models import Test
# Register your models here.

admin.site.register(Test)

然后进行数据迁移并创建管理员

makemigrations migrate createsuperuser

在进入后台创建数据之前,我们还要先进行一系列的配置

七牛云配置

在setting.py里面进行如下配置

QINIU_ACCESS_KEY = '你的七牛云ACCESS_KEY'
# 七牛给开发者分配的AccessKey
QINIU_SECRET_KEY = '你的七牛云SECRET_KEY'
# 七牛给开发者分配的Secret
QINIU_BUCKET_NAME = '你的七牛云空间名称'
# 用来存放文件的七牛空间(bucket)的名字
QINIU_BUCKET_DOMAIN = '你的七牛云域名或自己配置的cdn加速域名'
# 七牛空间(bucket)的域名,别遗漏了后面的/
DEFAULT_FILE_STORAGE = 'qiniustorage.backends.QiniuStorage'
# 只用七牛托管动态生成的文件(例如用户上传的文件)


MEDIA_URL = QINIU_BUCKET_DOMAIN
MEDIA_ROOT = QINIU_BUCKET_DOMAIN

为了能让图片信息渲染出来,我们还要进行url配置,

# urls.py
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path, re_path, include
urlpatterns = [
    ···
    re_path(r'^ueditor/',include('DUEditor.urls' )), # 要把编辑器url加上,不然不能上传图片

]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

然后编写视图,创建静态模板,在admin后台填写一下假数据,就能看到图片已经渲染出来啦,而且图片是保存在七牛云上面的哦

django-restframework

在DRF上也是可以这样做的 安装DRF

pip install djangorestframework

将restframework注册到INSTALLED_APPS中 然后在app中创建serializers.py文件

from .models import Test
from rest_framework import serializers

class TestSerializers(serializers.ModelSerializer):
    class Meta:
        model = Test
        fields = '__all__'

编写视图

from .models import Test
from .serializers import TestSerializers
from rest_framework import mixins, viewsets
class IndexView(mixins.ListModelMixin, viewsets.GenericViewSet):
    ```
    GenericViewSet:会补全所有路径,变为绝对路径
    ListModelMixin:将数据呈列出来,只读
    ```
    queryset = Test.objects.all()
    serializer_class = TestSerializers

然后注册到路由

# urls.py
from rest_framework.routers import DefaultRouter
from testapp.views import IndexView
router = DefaultRouter()
router.register(r'index', IndexView)
urlpatterns = [
    ···
    path('api/', include(router.urls)),
    ···
    ]

然后浏览器输入 http://127.0.0.1:8000/ 查看一下 地址已经变成了我们七牛云的地址, 然后输入http://127.0.0.1:8000/api/ 查看一下

完结!

最后修改:2020年6月26日 10:05