栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

静态资源管理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

静态资源管理

前后分离图片上传

编写模型类
进行迁移

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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875839.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号