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