django开发流程3(轮播图)

news2024/9/29 3:47:55

1.在models中创建一个模板

class Ads(models.Model):
    title = models.CharField(verbose_name="标题", max_length=30)
    image = models.ImageField(verbose_name="广告图", upload_to="ads")
    url = models.URLField(verbose_name="链接网址", default="http://www.baidu.com")

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = "轮播图"
        verbose_name_plural = "轮播图"

2.安装一个图片处理模块 pip install  Pillow

3.生成迁移文件并迁移

python .\manage.py makemigrations

python .\manage.py migrate

4.修改媒体路径

首先在models中 upload_to="ads"

然后在settings中

当你运行添加轮播图时,照片会自动放入

5.预览图片

6.配置后台

7.配置轮播图

1.views里面添加Ads

2.在index.html中引入轮播图样式

{% extends 'base/base.html'  %}


{% block title %}
<title>首页</title>
{% endblock %}


{% block body %}
    {{ cs }}
<div class="row">
<div class="col-md-8 col-md-offset-2">
            <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
              <!-- Indicators -->
              <ol class="carousel-indicators">
                  {% for ads in adss %}
                    {% if forloop.first %}
                  <li data-target="#carousel-example-generic" data-slide-to="{{ forloop.counter0 }}" class="active"></li>
                    {% else %}
                  <li data-target="#carousel-example-generic" data-slide-to="{{ forloop.counter0 }}"></li>
                    {% endif %}
                  {% endfor %}



              </ol>

              <!-- Wrapper for slides -->
              <div class="carousel-inner" role="listbox">
                   {% for ads in adss %}
                    {% if forloop.first %}
                        <div class="item active">
                    {% else %}
                        <div class="item">
                    {% endif %}
                            {{ ads.image }}
                        <img src="/media/{{ ads.image }}" alt="...">
                  <div class="carousel-caption">
                      {{ ads.title }}
                  </div>
                </div>
                  {% endfor %}


              </div>

              <!-- Controls -->
              <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
                <span class="sr-only">Previous</span>
              </a>
              <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
                <span class="sr-only">Next</span>
              </a>
            </div>
        </div>
    </div>
</div>

<div class="row">
        <div class="col-md-8 col-md-offset-2">
              <!-- Nav tabs -->
              <ul class="nav nav-tabs" role="tablist">
                  {% for c in cs %}
                    {% if forloop.first %}
                <li role="presentation" class="active"><a href="#tab{{ c.id }}" aria-controls="{{ c.id }}" role="tab" data-toggle="tab">{{ c.title }}</a></li>

                    {% else %}
                <li role="presentation"><a href="#tab{{ c.id }}" aria-controls="{{ c.id }}" role="tab" data-toggle="tab">{{ c.title }}</a></li>

                    {% endif %}
                  {% endfor %}

              </ul>

              <!-- Tab panes -->
              <div class="tab-content">
                   {% for c in cs %}
                    {% if forloop.first %}<div role="tabpanel" class="tab-pane active" id="tab{{ c.id }}">
                    {% else %}
                <div role="tabpanel" class="tab-pane" id="tab{{ c.id }}">
                    {% endif %}
                    <ul class="list-group">
                        {% for b in c.book_set.all %}
                      <li class="list-group-item">
                          <a href="/detail/{{ b.id }}">{{ b.title }}</a>
                      </li>
                        {% endfor %}
                    </ul>

                </div>
                    {% endfor %}



                </div>
              </div>
        </div>
    </div>
{% endblock %}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2175708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Diffusion绘画 | Checkpoint Merger 模型融合

在我们的模型库中&#xff0c;经常会发现下载的模型&#xff0c;生成的图片颜色发灰&#xff0c;暗沉&#xff1a; 主要原因就是&#xff0c;我们下载的模型&#xff0c;作者训练时并没有加入VAE色调文件。 为了解决这个问题&#xff0c;我们可以使用 SD 自带额模型融合页面&am…

召回08 双塔模型——线上服务、模型更新

线上召回 离线存储&#xff1a; 模型训练好之后&#xff0c;部署到线上做召回&#xff0c;快速找到用户感兴趣的物品。 对训练好的两个塔&#xff0c;线上服务前&#xff0c;先用右边的物品塔提取物品的特征做离线存储&#xff0c;记作特征向量b&#xff0c;把&#xff08;b…

redux的基础知识

1. 概念 是集中状态管理工具 2. 使用步骤 3. 总结 参考&#xff1a;黑马程序员react教程

Linux Reverse(1)-LD_PRELOAD

LD_PRELOAD 是 Linux 系统中的一个环境变量&#xff0c;它允许用户在程序运行时动态地加载共享库。通过设置该环境变量&#xff0c;用户可以指定一个或多个共享库&#xff0c;这些库中的函数将在其他库或程序调用相同函数时优先使用。这在调试、注入、替换函数实现或修改程序行…

大数据Hologres(二):Hologres 快速入门

文章目录 Hologres 快速入门 一、资源领取 二、入门体验 1、创建数据库 2、创建表 3、导入示例数据 4、查询表中数据 Hologres 快速入门 一、资源领取 领取链接&#xff1a; 阿里云免费试用 - 阿里云 (aliyun.com) 二、入门体验 1、创建数据库 进入Hologres管理控制…

递归,搜索与回溯40道算法题

目录 一递归 1汉诺塔问题 2合并两个有序链表 3反转链表 4两两交换链表的节点 5Pow(x,n) 二二叉树的深搜 1计算布尔二叉树的值 2求根节点到叶节点数字之和 3二叉树剪枝 4验证二叉搜索树 5二叉搜索树中第K小的元素 6二叉树的所有路径 三穷举vs暴搜vs深搜vs回溯vs…

AI 大模型浪潮下,大龄程序员怎样转型求变,攀登技术高峰?

前言 在信息技术迅猛发展的今天&#xff0c;程序员作为技术的创造者和实践者&#xff0c;正面临前所未有的挑战。技术的迭代速度日益加快&#xff0c;传统项目的生命周期不断缩短。同时&#xff0c;人工智能&#xff08;AI&#xff09;尤其是大模型技术的兴起&#xff0c;使得…

如何使用ssm实现基于web的学生就业管理系统的设计与实现+vue

TOC ssm726基于web的学生就业管理系统的设计与实现vue 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上…

算法题题解:两个链表的交点

在这篇博客中&#xff0c;请允许我分享一下力扣上的算法题目&#xff1a;“两个链表的交点”&#xff0c;记录一下上面的一个有效的解法。该问题的目标是找到两个单链表的交点节点&#xff0c;若无交点则返回NULL。 题目描述 给你两个单链表的头节点 headA 和 headB &#xf…

【蚂蚁HR-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

每日一练:从前序遍历与中序遍历序列构造二叉树

105. 从前序与中序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节…

在 Delphi BSD11中安装 DCU 格式的第三方组件库

在 Delphi BSD 11 中安装 DCU 格式的第三方组件库可以按照以下步骤进行&#xff1a; 打开 Delphi&#xff1a;启动 Delphi 开发环境。 选择安装组件&#xff1a; 在菜单栏中&#xff0c;选择 Component -> Install Component。 选择 DCU 文件&#xff1a; 在弹出的对话框中…

【重学 MySQL】四十一、子查询举例与分类

【重学 MySQL】四十一、子查询举例与分类 引入子查询在SELECT子句中引入子查询在FROM子句中引入子查询在WHERE子句中引入子查询注意事项 子查询分类标量子查询列子查询行子查询表子查询 子查询注意事项子查询的位置子查询的返回类型别名的使用性能考虑相关性错误处理逻辑清晰 总…

Vue 学习

vue 核心语法 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Vue 核心语法测试</title> </head><body&…

GGHead:基于3D高斯的快速可泛化3D数字人生成技术

随着虚拟现实(VR)、增强现实(AR)和数字人技术的发展,对高质量、实时生成的3D头部模型的需求日益增长。传统的3D生成方法往往依赖于复杂的2D超分辨率网络或大量的3D数据,这不仅增加了计算成本,还限制了生成速度和灵活性。为了解决这些问题,研究人员开发了一种名为GGHead…

14.安卓逆向-frida基础-编写hook脚本2

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信。 工…

图技术与大语言模型 LLM 结合,打造下一代知识图谱应用

随着 AI 人工智能技术的迅猛发展和自然语言处理领域的研究日益深入&#xff0c;如何构建强大的大语言模型对于企业来说愈发重要&#xff0c;而图数据库作为处理复杂数据结构的有力工具&#xff0c;为企业构建行业大语言模型提供了强大的支持。 近日&#xff0c;国产企业级分布…

UE学习篇ContentExample解读------Blueprints Advanced-下

文章目录 总览描述批次阅览2.1 Timeline animation2.2 Actor tracking2.3 Button Trigger using a blueprint interface2.4 Opening door with trigger2.5 Child Blueprints 概念总结致谢&#xff1a; 总览描述 打开关卡后&#xff0c;引入眼帘的就是针对关卡的总体性文字描述&…

netdata(Linux 性能实时监测工具)一键安装 for armbian

下载地址netdata/netdata: Architected for speed. Automated for easy. Monitoring and troubleshooting, transformed! (github.com) sh netdata-armv7l-latest.gz.run^|.-. .-. .-. .-. . netdata| - - - - real-time performance monitoring, done righ…

指定PDF或图片多个识别区域,识别区域文字,并批量对PDF或图片文件改名

常见场景 用户有大量图片/PDF文件&#xff0c;期望能按照图片/PDF中的某些文字对图片/PDF文件重命名。期望工具可以批量处理、离线识别&#xff08;保证数据安全性&#xff09;。手工操作麻烦。具体场景&#xff1a;用户有工程现场照片&#xff0c;订单&#xff0c;简历等PDF或…