zoukankan      html  css  js  c++  java
  • Django学习手册

    前置步骤

    setting.py文件配置:

      添加app目录

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'app01',
    ]

      添加media文件和路径

    PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname('__file__')))
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

    app目录下models.py配置

    from django.db import models
    
    # Create your models here.
    
    class Test(models.Model):
        name = models.CharField(max_length=50)
        image = models.ImageField(upload_to='logo/')

    注意:  

      ImageField() 依赖 Pillow (pip install Pillow) 

      这里login是目录路径 完整的路径是 /media/logo/图片

    这里图片可以通过Django admin后台直接添加

    所有设置一下app里 admin.py文件

    from django.contrib import admin
    from app01.models import Test
    
    # Register your models here.
    
    admin.site.register(Test)

    引入models 中的Test类  然后 admin.site.register(Test)

    接着加载数据库 写入数据库

     创建超级用户

    然后就是正常的Django访问配置了:

    urls.py配置

    注意!!! 这里必须要添加static 目录,后端通过传递/media/logo/图片,而这里是将图片传递到前端浏览器,这样才能访问路径的图片

    from django.contrib import admin
    from django.urls import path
    from app01 import views
    from django.conf.urls import url
    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        url(r'index/', views.index),
    ]
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

    views.py配置

    from django.shortcuts import render,HttpResponse
    from app01 import models
    
    # Create your views here.
    
    def index(request):
        img = models.Test.objects.all()
        # img = models.Test.objects.filter(id=1)[0].image.url
        return render(request,'index.html',{'img':img})

    从数据库中读取图片路径 然后传递到前端页面.

    前端页面:

    后台传递的若是: img = models.Test.objects.all()
    前端则是:
    <body>
        {% for i in img %}
            <img src="{{ i.image.url}}">
        {% endfor %}
    </body>
    后台传递的若是:img = models.Test.objects.filter(id=1)[0].image.url
    前端则是:
    <body>
       {{ img }}
    </body>

    测试:

     

    添加图片以后再 访问index页面

  • 相关阅读:
    BZOJ 1070 修车
    BZOJ 1927 SDOI2010 星际竞速 最小费用最大流
    LOJ 2321 清华集训2017 无限之环 拆点+最小费用最大流
    EZOJ 宝石迷阵 建图+网络流匹配
    BZOJ 1711 吃饭dining/Luogu P1402 酒店之王 拆点+最大流流匹配
    POJ 1637 Sightseeing tour 建图+网络流
    POJ 1149 PIGS 建图,最大流
    【2018 1月集训 Day1】二分的代价
    【2019 1月集训 Day1】回文的后缀
    20181228 模拟赛 T3 字符串游戏 strGame 博弈论 字符串
  • 原文地址:https://www.cnblogs.com/Anec/p/9920999.html
Copyright © 2011-2022 走看看