django实战(1)

本文介绍了Django实战中涉及的models.py、views.py、urls.py模块,以及HTML文件中{% for %}和{% if %}/{% ifequal %}标签的使用。在模板设计中,利用for标签遍历序列,if标签进行逻辑判断,ifequal标签则用于比较值的相等。此外,文章还讨论了遇到的`django.core.exceptions.ImproperlyConfigured`错误,原因是STATICFILES_DIRS设置包含了STATIC_ROOT,并提供了修改STATIC_ROOT的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.models.py

此模块用来设计数据库表的结构,在该模块中设计不同的类及其属性。

class Main(models.Model):
    img = models.CharField(max_length=200)
    name = models.CharField(max_length=100)
    trackid = models.CharField(max_length=16)

    class Meta:
        abstract = True


#以上定义一个抽象的类main,MainnWheel继承该类的所有属性。可以用这种方式较少代码行
class MainWheel(Main): 
    #轮循banner
    class Meta:
        db_table = 'axf_wheel'
2.views.py

该模块定义一些,链接到html文件

def home(request):

#通过objects.all获取滚动图片的所有信息
mainwheels = MainWheel.objects.all() 

#将获取到的信息放在一个字典中,以便于前端使用
data = {     
    'mainwheels':mainwheels,
}
#当用户请求首页信息时,返回首页。
#并将存储在字典中的数据传给前端
return render(request, 'home/home.html', data)
3.urls.py

该模块用来存储页面地址。

urlpatterns = [
#首页存储在列表中,并调用views模块中的home方法
    url(r'^home/', views.home), ]
4.html文件及其{% for %}标签和{% if %}/{% ifequal %}标签

描述页面的具体设计信息。

#一对花括号和白分号包围的文字是模板标签
{% for img in mainwheels %}
     <div class="swiper-slide">
          <a href="#">
          #两对花括号包围的文本是变量,值把变量的值插入到这里
          #获取标签的img属性并显示
             <img src="{{ img.img }}" alt="">
             #将变量name插入到图片下方
             <span>{{img.name}}</span>
          </a>
      </div>
{% endfor %}

add:html中有两个常用标签,{% for %}标签和{% if%}标签,for标签和python中的for语句很像,用于迭代序列中的各个元素。if标签的作用是编写逻辑判断。当模板需要比较两个值,在相等时显示内容,此时可以用{% ifequal %}标签。与{% if %}标签一样,{% ifequal %}标签支持可选的{% else %}子句。
各个标签实例如下:

 <div class="CVS">
      <!--处理第一个店铺的数据的图片-->
      {% for img in mainshops %}
      #当计数器等于1时,处理第一个数据
          {% ifequal forloop.counter 1 %}
              <h2>
              #获取标签的img属性并显示
                  <img src="{{ img.img }}" alt="">
              </h2>
        #{% ifequal %}的结束标签{% endifequal %}
          {% endifequal %}
        #{% for %}的结束标签{% endfor %}
      {% endfor %}


   <fieldset>
        {% for img in mainshops %}
            #当计数器大于2且小于4            
            {% if forloop.counter > 1 and forloop.counter < 4 %}

                <!--处理第二个和第三个数据-->
                <a href="#">
                    <img src="{{ img.img }}" alt="">
                </a>
                <!--处理结束-->
            #{% if %}的结束标签{% endif %}   
            {% endif %}
        {% endfor %}
    <fieldset>


             <ul>
             <!--处理第四个到第七个数据-->
             {% for img in mainshops %}
                 {% if forloop.counter > 3 and forloop.counter < 8 %}
                         <li>
                             <a href="#">
                                 <img src="{{ img.img }}" alt="">
                                 <span></span>
                             </a>
                         </li>
                         <!--处理结束-->
                    {% endif %}
              {% endfor %}



    </ul>
       <ol>
           {% for img in mainshops %}
               {% if forloop.counter > 7 and forloop.counter < 12 %}
                   <!--处理第八个到第十一个数据-->
                   <li>
                       <a href="#">
                           <img src="{{ img.img }}" alt="">
                       </a>
                   </li>
                   <!--处理结束-->
               {% endif %}
           {% endfor %}
       </ol>
 </div>

每一张图片都有一个id,以上按图片编号在不同模块显示不同的图片。

这里写图片描述

5.报错:django.core.exceptions.ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting

解决方法:
把STATIC_ROOT = os.path.join(BASE_DIR, ‘static’)改为
STATIC_ROOT = os.path.join(BASE_DIR, ‘static1’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值