Django登录功能简单实现

登录功能简单实现

复制代码
# form表单默认是get请求
    get请求携带的参数是拼接在url后面的以?开头&链接,默认method方式为Get
    ps:get请求可以携带参数 但是参数的大小有限制 最大4KB,并且是明文的
    http://127.0.0.1:8000/login/?username=simon&password=123

# 如果改为method改为post提交,需要将settings.py中一行注释,否则会报403错误:
# 'django.middleware.csrf.CsrfViewMiddleware', # 跨站请求伪造

获取用户输入的框 都必须要有name属性

action参数有三种写法
    1.什么都不写 默认往当前页面的url地址提交
    2.只写路由后缀(******)
    <form action="/login/" method="post">
    3.写全路径
        <form action="https://www.baidu.com" method="post"> 
复制代码
复制代码
# 数据后端获取

#前端
            <form action="" method="post">
                <p>username:<input type="text" class="form-control" name="username"></p>
                <p>password:<input type="password" class="form-control" name="password"></p>
                <p>篮球<input type="checkbox" name="xxx" value="basketball"></p>
                <p>足球<input type="checkbox" name="xxx" value="football"></p>
                <p>冰球<input type="checkbox" name="xxx" value="ice"></p>
                <input type="submit" class="btn btn-success pull-right">
            </form>
# views.py:获取访问login页面的method以及post提交的数据
def login(request):
    print(request.method) # 获取当前请求方式
    if request.method == 'POST':
        # 获取post请求提交的数据
        print(request.POST)
        # get请求默认拿列表最后一个值:如-获取到2个username,取值永远拿最后一个元素
        username = request.POST.get('username')
        password = request.POST.get('password')  # 还可以在后面增加判断账号密码判断,以后通过数据库来判断传递的账号密码
     if username == "simon" and password == "123":
      return redirect("http://www.xiaohuar.com")
     return "xxxxxxx" hobby = request.POST.getlist('xxx') print(hobby,type(hobby)) print(username,type(username)) print(password, type(password)) return render(request,'login.html') # 结果: POST <QueryDict: {'username': ['simon'], 'password': ['123'], 'xxx': ['basketball', 'football', 'ice']}> ['basketball', 'football', 'ice'] <class 'list'> simon <class 'str'> 123 <class 'str'>
复制代码
posted @ 2021-07-15 11:04  python包包侠  阅读(113)  评论(0)    收藏  举报
1