django实战(1)

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’)

猜你喜欢

转载自blog.csdn.net/u014229742/article/details/80245357