Django 学习笔记 - 快速完成文章列表

快速完成文章列表

  1. 创建一个新的小应用 article
  2. 数据模式
  3. 管理后台: search_fields

注意:article/admin.py 里面的search_fields 不能搜索外键

URL配置

url --> http://xxx.xxx.xxx/article/lists/1

总url配置 myforum/urls.py

url(r'^article/', include("article.urls"))
  • 有include() 交由子目录处理
  • 没有include() 处理函数

文章 article/urls.py

url(r'^lists/(?P<block_id>\d+', "article.views.article_list", name="article_list")
  • url匹配模式,固定格式,当后面匹配url模式的话,就赋值给一个name的变量,匹配到得参数传入后面的控制器的函数来处理
    | (?P <block_id> \d+ )
    | (?P <name> pattern )

注意!从html中解析url:

url(r'^lists/(?P<block_id>\d+', "article.views.article_list", name="article_list")
  1. {% url 'article_list' block.id %} 通过url名称找到了url配置,带上block.id这个变量
  2. 通过url配置,把block.id的值替换<block_id>,解析出来一个字符串: list/(block.id)

注意!urls.py匹配url,返回页面:

  1. 把url跟urls配置匹配,如果匹配的话,就交由控制器views.py处理
  2. 把匹配到的<block_id>作为参数,传到article.views.article_list
  3. article.views.article_list 渲染出一个html

控制器 views.py

block_id 参数,从urls.py匹配到的block_id传入 views.py 的article_list函数进行处理

def article_list(request, block_id):
    block_id = int(block_id)
    block = Block.objects.get(id=block_id)
    articles = Article.objects.filter(block=block).order_by("-last_update_timestamp)
    # 取出block_id 所指定的板块,Article.block = block ,然后按更新时间倒序排列
    # articles 是查询结果集的类型
    return render_to_response("article_list.html", {"articles": articles, "block": block})
    # 返回一个网页,给网页传入两个参数articles和block
  • objects.get() 取一个记录,要求返回的结果,有且只有一个结果!
  • objects.filter() 取多个记录,按过滤条件进行筛选
  • objects.all() 取所有记录

模板templates

bootstap 简要

jumbotron, 面包屑(breadcrumb)

<div class="jumbotron">...</div>

面包屑(breadcrumb)

<ol class="breadcrumb">
<li><a href="{% url 'block_list' %}"></a></li>
<li class="active">{{ block.name }}</li>
</ol>
  • ol 有序列表,orderlist
  • {% xxxx xxxx %} django语法固定格式

templates标签

URL名称

url(r'^lists/(?P<block_id>\d+', "article.views.article_list", name="article_list")
# article/urls.py 里面的name就是URL名称

url(r'^$', "block.views.block_list", name="block_list")
# forum/urls.py 里面的name就是url名称
# 这个url没有任何的参数,因为url没有匹配任何的模式,同时在控制器函数里面,除了request之外,也没有其他的参数

django语法:url "URL名称" 位置参数 关键字参数=值|date:"Y-m-d P"

{% url "article_list" block.id %}  # 跳转到 http://xxx/lists/<block_id>
  • 使用url模板标签反解析参数,不需要写死跳转页面,更加灵活。
  • | 过滤器 date:"Y-m-d P" 格式化时间

对于choices枚举的django字段,get_变量名_status,把汉字说明输出出来

{{ article.get_status_display }}

html模板的继承,整合html代码到base.html

/templates/base.html 把html相同的部分拿出来。

模板 块标签

{% block content %} {% endblock %}
  • block, endblock 块标签开始和结束的标示
  • content 快标签的名字

子模板, block/templates/block_list.html, article/templates/article_list.html

{% extends "base.html" %}  # 必须是第一行
{% block conten %}
...
{% endblock %}

django是如何找打base.html的呢?

在myforum/setting.py中

TEMPLATES = [
    {   ...
        'DIRS': [ os.path.join(BASE_DIR, "templates" ],
        ...
    }
]

bootstrap 下拉框 需要引入jQuery 和 javascript

<script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容