白手起家学Python

Django实践(六)房贷计算器

2018-07-29  本文已影响2人  敖瑞_rick

上一章我们在Django实践(五)房贷计算器中,达成了前后端基本的交互,恩……真的是相当的基础,仅仅是前端输入的参数可以赋值再输出,没有做任何的数据处理。
本章我们应该为每一个用户提供一个数据提交入口,因此我们要将django的用户登陆系统搭建好。


快速配置

参考教程 django 快速实现完整登录系统(cookie)
请根据上述参考材料建立一个新的APP,搭建用户登陆系统。


这里要注意:教程的Django版本是1.6x,和我们使用的1.11现有版本有一些小地方相比要修改,我是这么修改的:

  1. cookie相关的需要注释掉;


    image.png
  2. 打开mysite5/online/views.py 文件:
#注册
def regist(req):
    if req.method == 'POST':
        uf = UserForm(req.POST)
        if uf.is_valid():
            #获得表单数据
            username = uf.cleaned_data['username']
            password = uf.cleaned_data['password']
            #添加到数据库
            User.objects.create(username= username,password=password)
            return HttpResponse('regist success!!')
    else:
        uf = UserForm()
    return render_to_response('regist.html',{'uf':uf}, context_instance=RequestContext(req))

context_instance=RequestContext(req)可以删去,其他的页面也是一样

从数据库中我们可以看出这个注册系统有缺陷,同一个用户名似乎可以无限注册,所以我们要再调整一下
#注册
def regist(req):
    if req.method == 'POST':
        uf = UserForm(req.POST)
        if uf.is_valid():
            #获得表单数据
            username = uf.cleaned_data['username']
            password = uf.cleaned_data['password']
            uname = req.GET.get('username')
            users = User.objects.filter(username=username)
            if len(users)>0:
                return HttpResponse('用户已存在')
            else:
                #添加到数据库
                User.objects.create(username= username,password=password)
                return HttpResponse('regist success!!') 
    else:
        uf = UserForm()
    return render_to_response('online/regist.html',{'uf':uf})

这个注册虽然还是有破绽(例如用中文注册会显示错误),但是用英文和数字已经可以完成注册了。参考:用户名重复


你可以看到,cookie将username带到了新的页面,接下来我们可以在这个页面进行进一步的开发

下一章我们将开始建立一个用户的房产数据提交入口,让用户可以按部就班的填写相关参数,这离我们计算房贷又更近了一步!

上一篇下一篇

猜你喜欢

热点阅读