温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

django中form表单组建使用及CBV模式的示例分析

发布时间:2021-10-18 11:27:48 来源:亿速云 阅读:140 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“django中form表单组建使用及CBV模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“django中form表单组建使用及CBV模式的示例分析”这篇文章吧。

一、FBV和CBV FBV:是视图函数以函数的方式写逻辑代码 CBV:是视图以类的方式写逻辑代码 如CBV: views.py from django.shortcuts import render,HttpResponse,redirect from django.views import View from django.views.decorators.csrf import csrf_exempt,csrf_protect from django.utils.decorators import method_decorator from app01 import models class LoginView(View):     @method_decorator(csrf_exempt)     def dispatch(self, request, *args, **kwargs):         return super(LoginView, self).dispatch(request,*args,**kwargs)     def get(self, request, *args, **kwargs):         return render(request, 'login.html')     def post(self,request, *args, **kwargs):         user = request.POST.get('user')         pwd = request.POST.get('pwd')         obj = models.UserInfo.objects.filter(username=user,password=pwd).first()         if obj:             request.session['user_info'] = {'id': obj.id, 'username': obj.username}             return redirect('/users.html')         return render(request, 'login.html', {'msg': '去你的'})          如FBV: views.py def register(request):     if request.method == "GET":         form = RegisterForm()         return render(request, 'register.html', {'form': form})     else:         response = {'status': True, 'data': None, 'msg': None}         form = RegisterForm(request.POST)         if form.is_valid():             print(form.cleaned_data)         else:             response['status'] = False             response['msg'] = form.errors         return HttpResponse(json.dumps(response))          二、form表单组建使用  导入forms模块 from django.forms import Form from django.forms import fields from django.forms import widgets #创建表单类 class UserForm(Form):     username = fields.CharField(         required=True,         error_messages={'required': '用户名不能为空'},         widget = widgets.TextInput(attrs={'class': 'form-control'})     )     password = fields.CharField(         required=True,         error_messages={'required': '邮箱不能为空', 'invalid': '邮箱格式错误'},         widget = widgets.TextInput(attrs={'class': 'form-control'})     )     ut_id = fields.ChoiceField(         choices = [],         widget = widgets.Select(attrs={'class': 'form-control'})     )     role_id = fields.MultipleChoiceField(         choices=[],         widget=widgets.SelectMultiple(attrs={'class': 'form-control'})     )     def __init__(self, *args, **kwargs):         super(UserForm,self).__init__(*args,**kwargs)         self.fields['ut_id'].choices = models.UserType.objects.values_list('id','title')         self.fields['role_id'].choices = models.Role.objects.values_list('id','caption') 注: username, password,渲染到页面是input标签属性的name值 fields.CharField表示输入文本类型, fields.ChoiceField表示单选下拉框 fields.MultipleChoiceField表示多选下拉框 required=True表示必填选项 error_messages={'required': '用户名不能为空'}表示错误提示 widget = widgets.TextInput(attrs={'class': 'form-control'})表示增加class属性

以上是“django中form表单组建使用及CBV模式的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI