需求:

在网站前端操作数据库(例如学生管理系统)的时候,经常会遇到对数据表的增删改查功能,在增加功能中,就经常会遇到一个a标签链接到新的网页,填写表单数据然后传递给后端,在后端进行获取数据后再在数据库中进行操作。

下面介绍两种方式实现这种模式:

方法一:

1、先在django中的url中配置路由

url中设置路由:

urlpatterns = [

path('admin/', admin.site.urls),

path('',views.classes),

path('add/',views.add),

path('addd/',views.addd)

]

2、前端html中写入添加

3、在点击前端的a链接后就会跳转到一个新的页面,新的跳转页面中写入表单

其中的action="/addd/"是关键,通过它来讲提交的数据重新到addd路由当中,由addd路由对应的views.addd函数来配置,最终完成跳转到主页路由中,如下代码:

4、views中写入

def add(request):

return (render(request,'add.html'))

def addd(request):

print(request.POST.get('add'))

return (redirect('/'))

方法二、

像上述方法这样写当然也是可以的,只是会比较傻,因为,后续我们的操作可能有n中这样的操作,每个都这样写,会增加极多的函数,如下介绍一种新的方式。

前述:

因为a标签跳转路由的方式是GET,而提交表单的方式我们可以设置为post方式,这样的话,只需要一个路由即可。如下

1、先配置路由

urlpatterns = [

path('admin/', admin.site.urls),

path('',views.classes),

path('add/',views.add),

]

2、Views中的函数改为:

def add(request):

if request.method=='GET':

return (render(request,'add.html'))

else:

print(request.POST.get('add'))

v=request.POST.get('add')

return (redirect('/'))

这是因为a属性链接跳转页面的路由方式是以GET方式跳转,而提交表单的方式是POST,两种不同的方式,我们就可以利用这个来进行if判断,

最终完成工作,跳转的页面工作交给我们的views后端来跳转

3、在点击前端的a链接后就会跳转到一个新的页面,新的跳转页面中写入表单

千万要注意的是这里的action="/add/"因为渲染后要跳转到这个界面进行提交表单操作

如果这里的action写成‘/’,那么views函数就直接走

if request.method=='GET':

return (render(request,'add.html'))

不会获取到前端的参数

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐