码迷,mamicode.com
首页 > 其他好文 > 详细

108-使用表格,不依赖于后台而输入内容

时间:2019-08-19 23:00:01      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:依赖   alt   工作   mode   short   建立   modelform   ret   编写   

1、前面我们记得,要在admin后台增加数据,需要使用models模块。现在不依赖于后台就能增加数据,则需要forms模块。

通过pycharm,在test_app下面增加一个forms.py。

from django import forms
from .models import CnbTitle


# 注意,如果我们只是想在网页上呈现一个表格,然后完成输入,根本不需要forms模块,直接在html里使用<form></form>即可
# 通过类名写法,大概就能知道这个form类是为CnbTitle服务的;
# 更简单点说:ModelForm就是链接模型和表格的(=model+form),django的语法非常平易近人,你看到一个词,大概就知道它干嘛
class CnbTitleForm(forms.ModelForm):
    # ModelForm内嵌了一个Meta类,这个类通过定义属性,建议模型和表格的关系,以及表格的一些式样
    class Meta:
        # 表示是哪个类
        model = CnbTitle
        # 表示表格将里将包含类的哪些属性,这里只包含text属性
        fields = [‘text‘]
        # 表示这个属性放在表格时,是否需要有标签
        labels = {‘text‘: ‘输入标题‘}

  通过注释可以看的很清楚,继续补充几点:

(1)表格的定义也是用类的形式

(2)简单地将表格的各行内容和类的各项属性连接起来即可,完成这个工作用ModelForm即可。

 

2、用试图呈现这个表格

现在我们暂不考虑更多其他内容,先简单呈现即可。

由于forms.py已经添好了,我们首先将forms.py里的类引入到views函数中,假设这个函数是form_test;

然后按照惯例,配置url,使其指向form_test;

最后建立一个test_from.html,可以为空,等函数编好后再去想html怎么写。

首先看views函数:

from django.shortcuts import render
from django.shortcuts import HttpResponse
from .models import CnbTitle
from .forms import CnbTitleForm


# 简单地呈现一个表格
def test_form(request):
    form = CnbTitleForm
    context = {‘form‘: form}
    return render(request, ‘test_form.html‘, context)

 可以看见这个函数非常简单:将引入的表格类赋值给一个变量,然后将变量包装为字典,然后传值到指定页面即可。

 

3、编写模板页面,使表格最终被呈现出来

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test Form</title>
</head>
<body>
    <p>一个简单的表格:</p>
    <form action="" method="">
        {% csrf_token %}
        {{form.as_p}}
        <button name="submit">提交</button>
    </form>
</body>
</html>

 

4、最终我们可以看到

技术图片

 

108-使用表格,不依赖于后台而输入内容

标签:依赖   alt   工作   mode   short   建立   modelform   ret   编写   

原文地址:https://www.cnblogs.com/lzhshn/p/11380219.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!