如何使用 bootstrap 登录表单来验证 django 用户
How to use bootstrap login form to authenticate django users
我正在构建我的第一个 Django Web 应用程序,但有一个问题我似乎找不到解决方案。
我的主页 (index.html) 是基于 bootstrap 的,它显示了一些文本以及 bootstrap 登录表单。
从 bootstrap 登录表单允许 Django 身份验证的正确方法是什么?
我已根据网上各处的建议尝试了解决方案,但我总是遇到错误。
这是我的代码:
里面index.html
<div class="inner cover">
<h1 class="cover-heading">Admin Interface</h1>
<p class="lead">Welcome to your dedicated Admin Interface.<br>Log in to access your dashboard and control panel.</p>
<form class="form-signin">
<label for="inputEmail" class="sr-only">Email address</label>
<input type="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" id="inputPassword" class="form-control" placeholder="Password" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>
</div>
里面myapp/urls.py
from django.conf.urls import include, url
from user import views
from django.contrib.auth import views as auth_views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
我的主内urls.py
from django.conf.urls import include
from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('user.urls')),
]
我尝试添加表单 method="post" action="{% url 'django.contrib.auth.views.login' %} 但它不起作用。
你知道我应该怎么做吗?
非常感谢您。
朱莉娅
您可以将 url 放在 urls.py 上。
from django.conf.urls import include
from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views as auth_view
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('user.urls')),
url(r'^login/$', auth_view.login, name="login"),
]
然后将其路由到操作
<form method='POST' action = '{% url 'login' %}' class="form-signin">
或者,您也可以使用 LoginView,如下所示:
from django.contrib.auth.views import LoginView
urlpatterns = [
...
url(r'^login/$', LoginView.as_view(), name="login"),
]
我正在构建我的第一个 Django Web 应用程序,但有一个问题我似乎找不到解决方案。
我的主页 (index.html) 是基于 bootstrap 的,它显示了一些文本以及 bootstrap 登录表单。
从 bootstrap 登录表单允许 Django 身份验证的正确方法是什么?
我已根据网上各处的建议尝试了解决方案,但我总是遇到错误。
这是我的代码:
里面index.html
<div class="inner cover">
<h1 class="cover-heading">Admin Interface</h1>
<p class="lead">Welcome to your dedicated Admin Interface.<br>Log in to access your dashboard and control panel.</p>
<form class="form-signin">
<label for="inputEmail" class="sr-only">Email address</label>
<input type="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" id="inputPassword" class="form-control" placeholder="Password" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>
</div>
里面myapp/urls.py
from django.conf.urls import include, url
from user import views
from django.contrib.auth import views as auth_views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
我的主内urls.py
from django.conf.urls import include
from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('user.urls')),
]
我尝试添加表单 method="post" action="{% url 'django.contrib.auth.views.login' %} 但它不起作用。
你知道我应该怎么做吗?
非常感谢您。
朱莉娅
您可以将 url 放在 urls.py 上。
from django.conf.urls import include
from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views as auth_view
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('user.urls')),
url(r'^login/$', auth_view.login, name="login"),
]
然后将其路由到操作
<form method='POST' action = '{% url 'login' %}' class="form-signin">
或者,您也可以使用 LoginView,如下所示:
from django.contrib.auth.views import LoginView
urlpatterns = [
...
url(r'^login/$', LoginView.as_view(), name="login"),
]