之前生成了Product类的scaffold,但是如同rails的开发者David所讲的那样,scaffold几乎没什么用。所以按照《Agile Web Development with Rails 4th》中的迭代计划,下一步的修改是美化list页面:

但是这个界面还是太丑陋了。其实,有了bootstrap后,很多站点都变成了“又黑又硬”的工具条+“小清新”风格。我们即不能免俗,又懒得自已设计风格,不妨用bootstrap将产品清单界面重新设计成如下的风格:

下面让我们来实现这个界面。显然web界面会使用一些静态资源(css,js,image等),

要在Django中引入静态资源)。Django在正式部署的时候对于静态资源有特殊的处理,在开发阶段,可以有简单的方式让静态资源起作用。

首选在project目录下面创建一个static目录,并将静态资源按合理的组织方式放入其中:

static/

css/

bootstrap.min.css

js/

images/

productlist.html

其中productlist.html是请界面设计师实现的产品清单静态页面;css/bootstrap.min.css 是该页面使用的样式表,来自bootstrap,将来整个系统都将使用这一套样式风格;js目录现在为空,以后可以将javascript代码放在这 里;images文件夹同理。

我们可以看到,Django对于静态内容的管理非常符合管理。相比之下,rails要求你将静态内容放到很怪异的结构中:

app/assets/

images/

javascripts/

stylesheets/

界面设计师实现的界面要想运行起来,还需要修改相关的路径,或者改变自己的目录设置习惯。这种设计让人难以理解。

回到Django,让静态资源起作用只需要简单的配置(下面的做法只适用于开发阶段):

修改settings.py的static files小节:

import os
... ... # Additional locations of static files
HERE = os.path.dirname(__file__)
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
HERE+STATIC_URL,
)

然后在urls.py中增加static的url映射:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
... ...
# for development only
# This will only work if DEBUG is True.
urlpatterns += staticfiles_urlpatterns()

启动server,就可以通过http://127.0.0.1:8000/static/productlist.html看到设计好的界面了。

源代码:http://download.csdn.net/detail/thinkinside/4036963

在下一节,终于可以修改模板,美化产品清单页的样式了。

最新文章

  1. PHP中设置时区方法小结
  2. Web GIS 离线地图
  3. python 函数对象(函数式编程 lambda、map、filter、reduce)、闭包(closure)
  4. Java基础:三步学会Java Socket编程
  5. iOS开发——总结篇&关键字介绍
  6. Win7系统下完全删除Mysql
  7. C#不用COM组件导出数据到Excel中
  8. windows2012 r2 提高网速方法
  9. js原生API妙用(一)
  10. 从壹开始微服务 [ DDD ] 之十一 ║ 基于源码分析,命令分发的过程(二)
  11. __x__(43)0910第六天__ clearfix 解决:垂直外边距重叠,高度塌陷
  12. 解决Javascript中$(window).resize()多次执行(转)
  13. python抓取猫眼电影列表
  14. redhat 7.2更新yum源时踩的坑
  15. Windows 忘记密码
  16. Ghostscript远程代码执行漏洞利用方法
  17. 【Sets】使用Google Guava工程中Sets工具包,实现集合的并集/交集/补集/差集
  18. vue 时间格式化
  19. 深入研究java.lang.Runtime类(转)
  20. easyui最简单的左右布局实现,及tab的右键菜单实现

热门文章

  1. bzoj千题计划126:bzoj1038: [ZJOI2008]瞭望塔
  2. DFS——>记忆化搜索——>动态规划
  3. Shell中eval的用法示例
  4. 【CodeForces】961 F. k-substrings 字符串哈希+二分
  5. Django认证系统实现的web页面
  6. jquery $.post() 向php传值 实现简单的二级联动
  7. D. Easy Problem(简单DP)
  8. 网络流最大流(拆点)(附带kuangbin最大流模板)(目测这个题有bug)
  9. win10系统下我的电脑右键没有属性
  10. 2017-2018-2 20179205《网络攻防技术与实践》Windows攻击实验