Django实践(六)房贷计算器

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


快速配置

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


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

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


    Django实践(六)房贷计算器_第1张图片
    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)可以删去,其他的页面也是一样

  • 调整好之后
    Django实践(六)房贷计算器_第2张图片
    image.png

    Django实践(六)房贷计算器_第3张图片
    image.png
Django实践(六)房贷计算器_第4张图片
从数据库中我们可以看出这个注册系统有缺陷,同一个用户名似乎可以无限注册,所以我们要再调整一下

view.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']
            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 render_to_response('online/index.html' ,{'username':username,}) 
    else:
        uf = UserForm()
    return render_to_response('online/regist.html',{'uf':uf})

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


Django实践(六)房贷计算器_第5张图片
你可以看到,cookie将username带到了新的页面,接下来我们可以在这个页面进行进一步的开发

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

你可能感兴趣的:(Django实践(六)房贷计算器)