面向用户开发界面
1.使用functionView
2.使用class-basedView
使用functionView
合理编排url
根据上次的需求有博客首页,博文详情页,分类列表页,标签列表页,友链展示页
决定的url可以有:
- 博客首页:127.0.0.1:8080
- 博文详情页:127.0.0.1:8080/post/
.html - 分类列表页:127.0.0.1:8080/category/
/ - 标签列表页:127.0.0.1:8080/tag/
- 友链展示页:127.0.0.1:8080/links
定义相关的url
在urls.py中代码:
1 | # view相当于视图控制层 |
完整的url参数:
url(正则表达式字符串,视图函数,固定参数,此url的名称)
编写相关View的代码
1 |
|
render基础用法
1 | def post_list(request, category_id=None,tag_id=None): |
render一共6个参数:
- request对象
- 模版名称
- 字典类型数据,可以传递到模版中
- 页面编码类型
- 状态码
- 使用哪种模版引擎解析
配置模版
编写相应的页面和逻辑
1 | # 这个函数暂时现在可以处理种类和标签的请求 |
页面展示为
1 | <!--list.html --> |
重构页面视图
可以在模型中构建api方法
1 |
|
1 | # 这个函数暂时现在可以处理种类和标签的请求 |
其余页面代码大同小异
关于注解属性的文章可以参考 https://zhuanlan.zhihu.com/p/64487092
关于渲染不同的数据到不同的页面中,可以参考一下代码:
1 | def content_html(self): |
整理模版代码
抽象基础模版
抽象出base.html
1 | <!DOCTYPE html> |
其余代码参考如下:
1 | {% extends './base.html' %} |
关于url解耦
1 | url(r'^post/(?P<post_id>\d+).html$',post_detail name='post-detail'), |
使用class-based view
https://www.cnblogs.com/donghaiming/p/11007505.html 分页参考代码如下
https://blog.csdn.net/bibinGee/article/details/104859388 关于类视图 当然可以查阅书籍159-163
https://blog.csdn.net/pyrans/article/details/82763314 使用静态资源参考
https://www.cnblogs.com/sch01ar/p/11508002.html 关于django定义中间件
关于restframwork和一些其他的包插件等,可以到官方市场和博客中查阅
感言
关于django,一个项目需要流程化,比如工作流等特别定制等,除此之外基本都可以考虑使用djangoAdmin来解决
关于django的学习成本主要在djangoAdmin和ORM上。如果需要自行画页面就需要加上django的模版
关于部署和java保持一致。加载类似tomcat的服务器。然后用nginx做分流