龙空技术网

第21章 Django实战篇,业务逻辑的完整实现

老陈说编程 927

前言:

眼前姐妹们对“django架构中的什么负责实现业务逻辑”大概比较注意,看官们都需要剖析一些“django架构中的什么负责实现业务逻辑”的相关内容。那么小编同时在网上汇集了一些对于“django架构中的什么负责实现业务逻辑””的相关内容,希望兄弟们能喜欢,咱们一起来学习一下吧!

光有表单form,没有业务逻辑views.py助力,它在模板中将手足无措,秀而不实。在views.py中实现的代码来了。

21.1 views.py

from django.shortcuts import renderfrom department.forms import DepartmentFormfrom department.models import Department# 添加数据def create(request): form = DepartmentForm() if request.method == 'POST': msg = '' form = DepartmentForm(request.POST) if form.is_valid(): name = form.cleaned_data.get('name') if name_exist(name): form.add_error('name', "部门名称已存在,请确认!") msg = '' else: department = Department() department.name = name department.leader = form.cleaned_data.get('leader') department.phone = form.cleaned_data.get('phone') department.region = form.cleaned_data.get('region') department.address = form.cleaned_data.get('address') department.longitude = form.cleaned_data.get('longitude') department.latitude = form.cleaned_data.get('latitude') department.save() msg = '恭喜你,创建部门信息成功!' form = DepartmentForm() # 重置表单内容--清空 return render(request, 'department/create.html', {'form': form, 'msg': msg}) else: return render(request, 'department/create.html', {'form': form})
21.2 url配置

有关业务逻辑在views.py实现之后,需要在department/urls.py里进行配置,才能提供地址供用户进行访问。

from django.urls import pathfrom . import viewsapp_name = 'department'urlpatterns = [ path('create/', views.create, name='create'),]

对了,千万,百万别忘记在sales/urls.py中进行登记。

from django.contrib import adminfrom django.urls import include, pathurlpatterns = [ path('base/', include('base.urls')), path('department/', include('department.urls')), path('admin/', admin.site.urls),]
21.3 模板文件

一切业务相关的工作准备就绪,就差模板靓丽转身。在templates/department下,新建模板文件create.html。有了模板文件,表单Form就有了展露才华的机会。

如果想要以表格的方式表现,可选用form.as_table;如果想要以段落的方式面世,可选用form.as_p;如果想要以序列的方式见人,可选用form.as_ul。至于具体选用那种,要看需求文档中界面的要求。

至于在html5的form中加入novalidate属性,是为了禁用其自带的校验功能。

{{ msg }}<form action="{% url 'department:create' %}" method="post" novalidate> {% csrf_token %} {{ form.as_p }} <button type="reset">清空</button> <button type="submit">保存</button></form>

用form.as_p布局的效果如下,另外两种请自行测试。测试的结果可能都会让你大失所望,大跌眼镜,但请不要捶胸顿足,因为捶胸很痛的。

标签: #django架构中的什么负责实现业务逻辑