Django表单提交数据




Django表单处理

表单提交数据

  • 终端

    • from car_no.views import CarRecorsform

    • f = CarRecordForm()

    • f.as_table() as_p()P标签 as_ul() 列表

  
  f.is_valid()  查看输入是否有效
  f.errors
  
  auto_now     第一次插入数据时记录时间, 不会修改
  auto_now_add  最后登录时间, 每次修改都会改
创建一个类 继承 forms.Form
重写属性
  
  from django import formsclass CarRecordForm(forms.Form):
      carno = forms.CharField(max_length=7, label='车牌号码', error_messages={}) # label 显示在标签中的名字
      case = forms.CharField(max_length=50, label='违章原因')
      punish = forms.CharField(max_length=50, require=False, label='处罚方式')
      
  def add(request):
      if request.method == 'GET':
          errors = []
          f = CarRecordForm
      else:
          f = CarRecordForm(request.POST)
          if f.is_valid():
              a = f.cleaned_data
              Car(**a).save()
              f.CarRecordForm()
          else:
              errors = f.errors.values()
      return render(request, 'add.html', comtext={'f': f, 'errors': errors})




Django表单处理

表单提交数据

  • 终端

    • from car_no.views import CarRecorsform

    • f = CarRecordForm()

    • f.as_table() as_p()P标签 as_ul() 列表

  
  f.is_valid()  查看输入是否有效
  f.errors
  
  auto_now     第一次插入数据时记录时间, 不会修改
  auto_now_add  最后登录时间, 每次修改都会改
创建一个类 继承 forms.Form
重写属性
  
  from django import formsclass CarRecordForm(forms.Form):
      carno = forms.CharField(max_length=7, label='车牌号码', error_messages={}) # label 显示在标签中的名字
      case = forms.CharField(max_length=50, label='违章原因')
      punish = forms.CharField(max_length=50, require=False, label='处罚方式')
      
  def add(request):
      if request.method == 'GET':
          errors = []
          f = CarRecordForm
      else:
          f = CarRecordForm(request.POST)
          if f.is_valid():
              a = f.cleaned_data
              Car(**a).save()
              f.CarRecordForm()
          else:
              errors = f.errors.values()
      return render(request, 'add.html', comtext={'f': f, 'errors': errors})

views.py
  
  from json import dumps, JSONEncoderfrom django.core.serializers.json import DjangoJSONEncoder
  from django import forms
  from django.http import HttpResponse, JsonResponse
  from django.shortcuts import render# Create your views here.
  from car_no.models import Car
  ​
  ​
  class CarRecordForm(forms.Form):
      carno = forms.CharField(max_length=7 ,label='车牌号', error_messages={})
      case = forms.CharField(max_length=50, label='违章原因')
      punish = forms.CharField(max_length=50, required=False, label='处罚方式') # 可以不填
  ​
  ​
  def add(request):
  ​
      if request.method == 'GET':
          errors = []
          f = CarRecordForm()
      else:
          f = CarRecordForm(request.POST)
          if f.is_valid():
              a = f.cleaned_data # 获得输入的纯数据, 字典样式
              Car(**a).save()
              f = CarRecordForm()
          else:
              errors = f.errors.values()  # 所有的错误信息
      return render(request, 'add.html', context={'f': f, 'errors': errors})
  ​
  ​
  ​
  class CarRecordEncoder(DjangoJSONEncoder):  # DjangoJSONEncoder
      # pass
      def default(self, o):
          print('=='*20, o.model)
          a = o.model.__dict__
          print('======>>>>>',a)
          del a['_state']    # 转化为字典
          # o.__dict__['cardate'] = o.happen_date
          return adef ajax_search(request):
      if request.method == "GET":
          return render(request, 'ajax_search.html')
      else:
          carno = request.POST['carno']
          record_list = Car.objects.all()
          # 第一个参数是要转换成JSON格式(序列化)的对象
          #encoder 参数是指定自定义对象序列化的编码器 (JS
          # ONEncoder的子类型)
          # safe 的值如果为True 那么传入的第一个参数只能是字典, False 传入的不需要必须是字典, 但是要自定义序列化, 指定encoder
          #JsonResponse 如果传入的是字典, 就不需要其他的参数, 可以直接完成JSON格式的字符字符串的处理
          return JsonResponse(record_list,encoder=CarRecordEncoder ,safe=False)
  ​
          # return HttpResponse(json.dumps(record_list), content_type='application/json; charset=utf-8')
  ​
  ​
  def search(request):
  ​
      if request.method == 'GET':
          ctx = {'show_result': False}
      else:
          carno = request.POST['carno']
          ctx = {'show_result': True,
              'record_list': list(Car.objects.filter(carno__contains=carno))} # contians 模糊查询
  ​
      return render(request, 'search.html', context=ctx)
  ​
  ​
  def car(request):
  ​
      ctx={'car_list': Car.objects.all()}
      return render(request, 'car.html', context=ctx)
  ​
  ​
  def query(request):
      ctx = {'car_list': Car.objects.all()}
      return render(request, 'query.html', context=ctx)
  ​
  ​
  def index(request):
      ctx = {
          'query': '/car_no/query',
          'car': '/car_no/car'
      }
      return render(request, 'index.html', context=ctx)
  ​
  ​
  ​

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值