Django学习(五)---模板扩展,开发博客页面
2017-07-17 11:16
441 查看
(一)博客主页面开发
1.模板中可使用for循环,语法格式为:{% for xs in xxs %}
HTML语句
{% endfor %}
2.更改app下的views.py, 获取后台models Article类下的数据列表集合
思路:1)取出数据库中所有文章对象 2)将文章对象们打包成列表返回到前端
from django.shortcuts import render from . import models # Create your views here. def index(request): articles = models.Article.objects.all() return render(request,'blog/index.html',{'articles':articles})
3.修改html文件:
<!DOCTYPE html> <html> <head> <title>第一个Template</title> </head> <body> <h1><a href="">添加新文章</a></h1> {% for article in articles %} <a href="">{{ article.title }}</a> <br/> {% endfor %} </body> </html>
效果如下:
(二)博客文章页面开发
1.在app下views.py中添加响应函数page(对应文章内容页面)
2.点击博客主页面的文章链接会跳转到文章内容页面,实际上传递了点击的文章的唯一标识(主键 也就是django自己添加的id)
3.因此,在page方法里面添加参数article_id来传递主键id
4.获取文章对象,渲染到HTML
views.py如下:
from django.shortcuts import render from django.http import HttpResponse from . import models # Create your views here. def index(request): articles = models.Article.objects.all() return render(request,'blog/index.html',{'articles':articles}) def page(request,article_id): article = models.Article.objects.get(pk=article_id) return render(request,'blog/page.html',{'article':article})
5.创建templates下的page.html(文章内容页面)
<!DOCTYPE html> <html> <head> <title>my page</title> </head> <body> <h1>{{ article.title }}</h1> <br/> <h3>{{ article.content }}</h3> <br/><br/> <a href="#">修改文章</a> </body> </html>
6.app中的urls.py中配置如下:
from django.conf.urls import url from . import views urlpatterns = [ url(r'^index/$',views.index), url(r'article/(?P<article_id>[0-9]+)/$',views.page), ]
关键:URL参数传递
每个响应函数对应一个URL
上面的page响应函数多了一个参数,要在URL中体现出来
不同文章对应不同id localhost:8000/blog/article/1 ....article/2 对应不同文章
(?P<article_id>[0-9]+) 正则表达式匹配到的数字以article_id作为组名去匹配 组名必须和响应函数中的参数名保持一致。
使用(?P<>\d+)的形式捕获值给<>中的参数,比如(?P<article_id>\d+),当访问/index/article/1时,会将1捕获给article_id,这个值会传到views.py的page函数中的参数article_id,这样就可以判断展示哪个article的内容
相关文章推荐
- Django 博客开发教程 10 - 页面侧边栏:使用自定义模板标签
- Django 开发学习笔记(6)- 开发博客主页和所有话题列表页面
- Django 学习小组:博客开发实战第二周教程 —— 实现博客详情页面和分类页面
- Django 学习小组:博客开发实战第一周教程 —— 编写博客的 Model 与首页面
- Django1.9开发博客05- 页面美化
- Django 学习小组:博客开发实战第五周教程 —— 实现评论功能
- Django学习:博客文章页面(超链接)(9)
- django 简易博客开发 2( 模板和数据查询)
- Django学习(六)---博客文章页面的超链接设置
- Django 开发学习笔记(7)- 开发特定主题显示的页面
- Django学习:模板扩展(7)
- Django 开发学习笔记(8)- 开发表单页面,让用户添加内容
- django 简易博客开发 2 模板和数据查询
- Python web入门:Django学习与实践二(简单页面实现和创建一个模板)
- 在校学习任务实践--任务一:页面开发(图片轮播,js模板引擎,倒计时等功能)
- Django学习笔记之博客开发(二)
- Chrome扩展开发学习笔记之带选项页面的扩展
- Django学习(五) 定义视图以及页面模板
- Django开发博客(三)——在新的页面展示文章
- Django开发博客- 页面美化