专栏首页数据分析与挖掘django-表单之数据保存(七)

django-表单之数据保存(七)

models.py

class Student(models.Model):
    #字段映射,数据库中是male,female,后台显示的是男,女
    choices={
        ('male',"男"),
        ('female','女'),
    }
    #创建数据库中的字段
    name=models.CharField(verbose_name='姓名',max_length=20,unique=True)
    age=models.CharField(verbose_name='年龄',max_length=10)
    gender=models.CharField(verbose_name='性别',max_length=10,choices=choices,default='male')
    # is_deleted=models.BooleanField(verbose_name='是否删除',default=1)
    introduce=models.TextField(verbose_name='介绍')

    def __str__(self):
        return self.name

    class Meta:
        # verbose_name_plural='新闻'
        # verbose_name="新闻列表"
        #修改排列的顺序,这句是靠id从大到小排序
        ordering=['-id']
        db_table = 'student'

forms.py

class StudentForms(forms.ModelForm):
    formats=[
        '%Y-%m-%d',
        '%m/%d/%Y',
    ]
    # birthday = forms.DateField(label='出生日期', input_formats=formats)
    class Meta:
        model=Student
        # fields='__all__'
        # exclude=['is_deleted']
        fields=['name','age','gender','introduce']
        # fields = ['name']
        widgets={
            'name':forms.TextInput(attrs={'class':'custom-textinput'})
        }
        help_texts={
            'name':'请输入姓名',
        }
        labels={
            'name':'姓名',
            'age':'年龄',
            'gender':'性别',
            'introduce':'介绍',
        }
        # error_messages={
        #     'name':{
        #         'required':'...',
        #         'min_length':'...',
        #         'max_length':'...',
        #     }
        # }

views.py

class IndexStudent(View):
    def get(self,request):
        forms=StudentForms()
        return render(request,'index.html',{'forms':forms})
    def post(self,request):
        forms=StudentForms(request.POST)
        if forms.is_valid():
            # name=forms.cleaned_data.get('name')
            # age = forms.cleaned_data.get('age')
            # gender= forms.cleaned_data.get('gender')
            # is_deleted=forms.cleaned_data.get('is_deleted')
            # introduce = forms.cleaned_data.get('introduce')
            # context={
            #     'datalist':{
            #         'name':name,
            #         'age':age,
            #         'gender':gender,
            #         'id_deleted':is_deleted,
            #         'introduce':introduce,
            #     }
            # }
            forms.save()
            # return render(request,'home.html',context=context)
            return HttpResponse("OK...")
        else:
            return HttpResponse('Sorry...')

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{title}}</title>
    <style>
        /*.custom-textinput{
            border: 5px solid blue;
            border-radius: 5px;
        }*/
    </style>
    <link rel="stylesheet" href={% static 'css/index.css' %}

</head>
<body>
    <!--{% include 'header.html'%}-->
    <div class="content">
        <!--<h1>这是主界面</h1>-->
        <form action="" method="post">
            <table>
                <!--as_p,as_ul-->
                <!--{{forms.as_table}}-->
                <hr>
                <ul>
                    <li style="list-style-type: none">
                        <span style="color: blue">{{forms.name.label}} : </span>
                        <span>{{forms.name}}</span>
                    </li>
                    <li style="list-style-type: none">
                        <span style="color: blue">{{forms.age.label}} : </span>
                        <span>{{forms.age}}</span>
                    </li>
                     <li style="list-style-type: none">
                        <span style="color: blue">{{forms.gender.label}} : </span>
                        <span>{{forms.gender}}</span>
                    </li>
                     <li style="list-style-type: none">
                        <span style="color: blue">{{forms.introduce.label}} : </span>
                        <span>{{forms.introduce}}</span>
                    </li>
                </ul>
                <hr>
                <tr>
                    <td><input type="submit" value="submit" name="submit"></td>
                </tr>
            </table>
        </form>
        <!--{% block content %}-->
        <!--{% endblock %}-->
    </div>
    <!--{% include 'footer.html'%}-->
</body>
</html>

点击提交:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • django-表单之模型表单渲染(六)

    绝命生
  • django-表单之手动渲染(五)

    绝命生
  • django-表单之创建表单(一)

    绝命生
  • django-表单之模型表单渲染(六)

    绝命生
  • Swift-MVVM 简单演练(三)

    用户1890628
  • 神奇的 SQL 之 CASE表达式,妙用多多 !

      历史考试选择题:黄花岗起义第一枪谁开的? A宋教仁 B孙中山 C黄兴 D徐锡麟,考生选C。

  • 阮成发:云南义无反顾开展“旅游革命” 推动旅游业涅槃重生

    ? 阮成发回答中外记者提问时表示——云南义无反顾开展“旅游革命” 推动旅游业涅槃重生。 ? ? ? 3月7日上午,省长阮成发在云南省代表团媒体开放日回答中外记...

    腾讯文旅
  • API可视化管理平台YApi

    YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi ...

    Ryan-Miao
  • Python内置方法和属性应用:反射和单例(推荐)

    python除了丰富的第三方库外,本身也提供了一些内在的方法和底层的一些属性,大家比较常用的如dict、list、set、min、max、range、sorte...

    砸漏
  • MVVM之Vue源码分析

    我会首先介绍几个涉及JS方面的知识,然后着重对于实现一个MVVM框架的三大基本原理(即数据代理、模板解析、数据绑定)进行介绍,在接下来的几篇文章中会对涉及到的其...

    石璞东

扫码关注云+社区

领取腾讯云代金券