Python Can´;t在Django中执行查看操作

Python Can´;t在Django中执行查看操作,python,django,Python,Django,我想了解为什么当我点击登录按钮时,我无法运行user\u login功能。我是django的新手。谢谢 URL.py: from django.urls import path from iol_dash import views urlpatterns = [ path('', views.index, name='index'), ] views.py: from django.shortcuts import render from iol import Service de

我想了解为什么当我点击登录按钮时,我无法运行
user\u login
功能。我是django的新手。谢谢

URL.py:

from django.urls import path
from iol_dash import views

urlpatterns = [
    path('', views.index, name='index'),
]
views.py:

from django.shortcuts import render
from iol import Service

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

def user_login(request):
    username = request.POST.get('username')
    password = request.POST.get('password')
    service = Service()
    token = service.get_token(
        username=username,
        password=password
    )
    print(token)
index.html:

<form class="modal-content animate" method="post" action={{ views.user_login }}>
    {% csrf_token %}
    {{ form.as_p }}
    <div class="imgcontainer">
      <span onclick="document.getElementById('id01').style.display='none'" class="close" title="Close Modal">&times;</span>
    </div>
    <div class="container">
      <label for="username"><b>Username</b></label>
      <input type="text" placeholder="Enter Username" name="username" required>
      <label for="password"><b>Password</b></label>
      <input type="password" placeholder="Enter Password" name="password" required>
      <button type="submit">Login</button>

    </div>
</form>

{%csrf_令牌%}
{{form.as_p}}
&时代;
用户名
密码
登录

您需要为每个视图定义一个url。您的
url.py
应该是:

from django.urls import path
from iol_dash import views

urlpatterns = [
    path('', views.index, name='index'),
    path('login',views.user_login,name='user_login')
]
您的
index.html
应该是这样的:

<form class="modal-content animate" method="post" action="{% url 'user_login' %}">
    {% csrf_token %}
    {{ form.as_p }}
    <div class="imgcontainer">
      <span onclick="document.getElementById('id01').style.display='none'" class="close" title="Close Modal">&times;</span>
    </div>
    <div class="container">
      <label for="username"><b>Username</b></label>
      <input type="text" placeholder="Enter Username" name="username" required>
      <label for="password"><b>Password</b></label>
      <input type="password" placeholder="Enter Password" name="password" required>
      <button type="submit">Login</button>

    </div>
</form>

{%csrf_令牌%}
{{form.as_p}}
&时代;
用户名
密码
登录

您需要为每个视图定义一个url。您的
url.py
应该是:

from django.urls import path
from iol_dash import views

urlpatterns = [
    path('', views.index, name='index'),
    path('login',views.user_login,name='user_login')
]
您的
index.html
应该是这样的:

<form class="modal-content animate" method="post" action="{% url 'user_login' %}">
    {% csrf_token %}
    {{ form.as_p }}
    <div class="imgcontainer">
      <span onclick="document.getElementById('id01').style.display='none'" class="close" title="Close Modal">&times;</span>
    </div>
    <div class="container">
      <label for="username"><b>Username</b></label>
      <input type="text" placeholder="Enter Username" name="username" required>
      <label for="password"><b>Password</b></label>
      <input type="password" placeholder="Enter Password" name="password" required>
      <button type="submit">Login</button>

    </div>
</form>

{%csrf_令牌%}
{{form.as_p}}
&时代;
用户名
密码
登录

谢谢您的回答。它可以工作,您能否解释为什么
“{%url”用户登录“%}”
而不是
{{views.user\u login}
操作
告诉您何时提交表单,它必须重定向哪个url。由于每个url都有名称,因此它会执行相应的
视图
您能帮我解决我的新问题吗?谢谢你的回答。它可以工作,您能否解释为什么
“{%url”用户登录“%}”
而不是
{{views.user\u login}
操作
告诉您何时提交表单,它必须重定向哪个url。由于每个url都有名称,因此它会执行相应的
视图
您能帮我解决我的新问题吗?谢谢