静态资源管理

前后分离图片上传

编写模型类
进行迁移

class HeroImg(models.Model):
    hero_name=models.CharField(max_length=20,verbose_name='英雄名字')
    hero_img=models.ImageField(upload_to='imgs',verbose_name='头像')
    class Meta:
        verbose_name='头像表'
        verbose_name_plural=verbose_name
        db_table='heroimg'
    def __str__(self):
        return self.hero_name

upload_to`:此属性提供了一种设置上传目录和文件名的方法

  • 可以 指定一个字符串值,则该字符串值可能包含strftime() 格式,该格式将被文件上载的日期/时间替换(以便上载的文件不会填满给定目录)
  • 也可以指定一个固定的字符串

框架上传配置及ImageField

在项目根目录常见一个static文件夹里创建一个imgs文件夹
用来存放图片
在 项目的 setting.py文件中添加 配置项
这样就可以在admin里进行添加数据

#配置存放图片的路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'static')  # MEDIA_ROOT作为Django存储上传文件目录的完整路径, djangodemo为项目的名称
#配置url,用于访问图片资源
MEDIA_URL = '/media/'  # 图片添加成功之后,url展示图片的访问路径

前后分离图片访问

静态路由映射

  • 为了上传图片成功之后,可以正常展示图片,需要在 路由 后面添加 额外的 配置信息, 一般添加在主路由
  • 如果单纯的是上传,文件并不用来显示或者读取,就不用添加
from django.conf.urls.static import static
from day14qtw import settings
urlpatterns = [
    # path('admin/', admin.site.urls),
    path('hero2/',views.Heroview2.as_view())
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

配置序列化器

在serializers文件中配置

from rest_framework import serializers
from myapp.models import HeroImg
class Imgserializers(serializers.ModelSerializer):
    class Meta:
        model=HeroImg
        fields='__all__'

编写视图类ImageField字段序列化返回解析

from myapp.models import HeroImg
from rest_framework.viewsets import ModelViewSet
from myapp.serializers import Imgserializers
class Imgview(ModelViewSet):
    queryset = HeroImg.objects.all()
    serializer_class = Imgserializers

配置路由

from django.urls import path
from myapp import views
from rest_framework import routers
from django.conf.urls.static import static
from day14qtw import settings
urlpatterns = [
    # path('admin/', admin.site.urls),
    path('hero2/',views.Heroview2.as_view())
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
router=routers.SimpleRouter()
router.register('game',views.Gameview,'game')
router.register('hero',views.Heroview,'hero')
router.register('img',views.Imgview,'img')  #配置路由
urlpatterns+=router.urls
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值