首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录/ MultiValueDictKeyError / "uname,

登录/ MultiValueDictKeyError / "uname,
EN

Stack Overflow用户
提问于 2020-03-24 22:26:40
回答 1查看 64关注 0票数 0

我正在用python mysql和django开发一个电子商务网站。在登录期间,我在/ MultiValueDictKeyError /处获得登录。有人能检查一下这个吗?

这是我的登录页面,“uname”出现错误:

代码语言:javascript
复制
 <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
    </head>
    <body>

      <center>
        <form action="/login/" method="POST">
            {% csrf_token %}
            <input type="text" name="uname" placeholder="username"><br><br>
            <input type="text" name="pass" placeholder="password"><br><br>
            <input type="submit" value="Login">

        </form>
    </center>

    </body>
    </html>

这是我使用POST方法的views.py:

代码语言:javascript
复制
    from django.shortcuts import render, redirect, HttpResponse
    from django.http import HttpResponse
    from . models import *



    def home(request):
        return render(request,'index.html')

    def fn_login(request):
        v_username = request.POST['uname']
        v_password = request.POST['pass']
        try:
            login_obj = Login.objects.get(username=v_username,password=v_password)

            if login_obj.password == v_password:
                return render(request,'index.html')
            return HttpResponse('incorrect password')

        except Exception as e:
            print(e)
            return HttpResponse('invalid username')

这是我的应用程序urls.py:

代码语言:javascript
复制
from django.contrib import admin 
from django.urls import path 

# importing views from views..py 
from .import views

urlpatterns = [ 
    path('index/',views.home),
    path('login/',views.fn_login,),

]   

我的错误是这样的:

代码语言:javascript
复制
MultiValueDictKeyError at /login/
'uname'
Request Method: GET
Request URL:    http://127.0.0.1:8000/login/
Django Version: 3.0.4
Exception Type: MultiValueDictKeyError
Exception Value:    
'uname'
Exception Location: /home/akshay/Desktop/Django/env1/lib/python3.6/site-packages/django/utils/datastructures.py in __getitem__, line 78
Python Executable:  /home/akshay/Desktop/Django/env1/bin/python
Python Version: 3.6.9
Python Path:    
['/home/akshay/Desktop/Django/Ekart',
 '/usr/lib/python36.zip',
 '/usr/lib/python3.6',
 '/usr/lib/python3.6/lib-dynload',
 '/home/akshay/Desktop/Django/env1/lib/python3.6/site-packages']
Server time:    Wed, 25 Mar 2020 14:22:15 +0000
enter code here
EN

回答 1

Stack Overflow用户

发布于 2020-03-26 00:11:11

你能试着换一下吗?

代码语言:javascript
复制
v_username = request.POST['uname']
v_password = request.POST['pass']

请看下面的

代码语言:javascript
复制
v_username = request.POST.get('uname')
v_password = request.POST.get('pass')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60833055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档