这种方式虽然是可以实现,但是很麻烦,具体的如下:
后端: def login(request): if request.method == "GET": return render(request, "login.html") if request.method == "POST": # 这种虽然可以实现,但是很不友好 # 获取用户提交的数据,当传过来的数据太多的时候,很麻烦,这个应该怎么改进 user = request.POST.get('user', None) pwd = request.POST.get('pwd', None) email = request.POST.get('email', None) # 对用户提交的数据进行判断,提示用户的错误信息 # 邮箱的格式.以及用户是否存在的校验 # 添加到数据库 filter(**{}) 传一个字典给后端,相当于java中的map,当然按照java的方式,可以封装成一个对象,给对象赋值 create(**{}) 增加的时候也是可以传一个字典给数据库,这样避免了大量的重复代码的编写 返回给用户数据的几种形式, 当校验给用户友好的提示信息的时候,应该是进行render或者HttpResponse,直接进行本页面的用户的错误信息的提示 如果要返回逻辑的调转就用rediect # filter(user = username,email = email,) return render(request, "login.html") pass
前端:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>Form提交的数据</h1> <form action="/login.html/" method="POST"> <p> {# <input type="text" name="user" placeholder="用户名"><br>#} {{ oo.user }} <span>{{ oo.errors.user.0 }}</span> </p> <p> {# <input type="text" name="email" placeholder="邮箱"><br>#} {{ oo.email }} <span>{{ oo.errors.email.0 }}</span> </p> <p> <input type="text" name="pwd" placeholder="密码"><br> </p> <p> <input type="submit" value="提交"> </p> <p> <input id="ajax_submit" type="button" value="ajax提交"> </p> </form> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script> $(function () { $('#ajax_submit').click(function () { $.ajax({ url: "/login.html/", //向后台发送数据 data: { user: 'root', email: "@12306.com", pwd: "123445", }, type: "POST", //获取后台的数据 success: function (data) { console.log(data) } }) }) }) </script> </body> </html>
中间的urls省略..