[单页面]Django打造在线教育平台(七)--网页显示数据库内容

本教程讲解如何使用Django将数据库的内容显示到网页上。涉及知识点包括:在Views中引用字典,修改HTML模板以显示和逻辑判断数据,使用内置的slice函数处理字符串,并配置URL别名以实现更灵活的路由。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标:上一节课最后一小节讲的是怎么将网页输入修改数据库, 这一节课的目标反过来, 是将数据库内容显示在网页上.

知识点:{{ ** }},  {% if ** %}**{% endif %}

1. 改写Views代码, 引用字典

def getform(request):
    message = None
    all_messages = UserMessage.objects.filter(name='bobby')
    for message in all_messages:
        message = all_messages[0]
    return render(request, 'message/form.html',{
        "my_message": message   # render可以以字典方式传入参数, "my_message"是随意命名的,留待form.html中引用.
    })

2. 改写form.html代码, 增加逻辑


<input id="name" type="text" value="{% if my_message.name == 'bobby' %}bobby has name{% endif %}" name="name" class="error" placeholder="请输入您的姓名"/> .......# 中间代码不变, 省略. <input id="email" type="email" value="{{ my_message.email }}" name="email" placeholder="请输入邮箱地址"/>

 ......# 中间代码不变, 省略.
<input id="address" type="text" value="{% if my_message.name == 'bobby' %}{{ my_message.address }}{% endif %}" name="address" placeholder="请输入联系地址"/> ......# 中间代码不变, 省略.
<textarea id="message" name="message" placeholder="请输入你的建议">{{ my_message.message }}</textarea>


这里有不同的写法:
a. input
增加一项value="{{ my_message.email }}", 这样就能调用views中render传过来的{ "my_message": message }
b. input
增加一项value="{% if my_message.name == 'bobby' %}bobby has name{% endif %}",  增加if逻辑判断, 如果名字叫bobby, 则显示bobby has name.c. input
增加一项value="{% if my_message.name == 'bobby' %}{{ my_message.address }}{% endif %}", 将判断语句与{{ my_message.address }}一起使用.
d. textarea
if语句或者{{ my_message.message }} 需要写在尖括号对应中间   > </textarea>


3. 使用slice内置函数
<input id="name" type="text" value="{% if my_message.name|slice:'5' == 'bobby' %}bobby has name{% else %}bobby not name{% endif %}" name="name" class="error" placeholder="请输入您的姓名"/>
my_message.name|slice:'5', 意思是取my_message.name的前5个字母, 详细解释可查看官方文档Django document


4. 配置url别名
a. 在training_py34/urls下修改:
url(r'^form/$', getform, name="go_form"),
将form这个url命名为"go_form", 然后在form.html中引用, 这样即使未来修改了前面的正则表达式, 也不用在各处修改url.
b. 修改views中form的url为别名
<form action="{% url 'go_form' %}" method="post" class="smart-green">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值