我想使用 django 和 bootstrap 创建一个登录页面。
我的 Bootstrap 模板是:
http://getbootstrap.com/examples/signin/
我在互联网上找到的所有内容都是关于创建标准登录页面(没有任何特殊设计)。
有人可以指导我如何使用此 Bootstrap 模板(使用除电子邮件之外的用户名)进行身份验证和重定向吗?
谢谢。
最佳答案
我发现前 2 个答案不够充分,我不得不投入 2 美分。如果您知道自己在做什么,则可以在几分钟内部署该登录。在项目中创建您的第一个应用程序。假设该应用程序名为“home”。创建模板目录。在其中创建一个“注册”目录。创建文件“login.html”。 项目/home/templates/registration/login.html的内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>Signin</title>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</head>
<body class="text-center">
<form class="form-signin">
<img class="mb-4" src="https://getbootstrap.com/assets/brand/bootstrap-solid.svg" alt="" width="72" height="72">
<h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
<label for="inputEmail" class="sr-only">Email address</label>
{% csrf_token %}
<input id="inputEmail" class="form-control" placeholder="Email address" required="" autofocus="" type="email">
<label for="inputPassword" class="sr-only">Password</label>
<input id="inputPassword" class="form-control" placeholder="Password" required="" type="password">
<div class="checkbox mb-3">
<label>
<input value="remember-me" type="checkbox"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
<p class="mt-5 mb-3 text-muted">© 2017-2018</p>
</form>
</body>
</html>
<style>
html,
body {
height: 100%;
}
body {
display: -ms-flexbox;
display: -webkit-box;
display: flex;
-ms-flex-align: center;
-ms-flex-pack: center;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
padding-top: 40px;
padding-bottom: 40px;
background-color: #f5f5f5;
}
.form-signin {
width: 100%;
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .checkbox {
font-weight: 400;
}
.form-signin .form-control {
position: relative;
box-sizing: border-box;
height: auto;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.form-signin input[type="email"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
</style>
我使用 CDN 在 header 中加载 jQuery 和 bootStrap,将模板复制到下面的样式标签中(只是想要一些可以演示的代码,我知道有更奇特的方法可以做到这一点)。基本上,这是从 Bootstrap 网站剪切和粘贴的工作。
这是 django 可以挥舞的很酷的魔杖,名为 DRY;编辑位于project/project目录中的主urls.py:
from django.contrib import admin
from django.urls import path, include
from django.contrib.auth.views import LoginView
urlpatterns = [
path('', LoginView.as_view()),
path('home/', include('home.urls')),
path('admin/', admin.site.urls),
]
那么为什么这会起作用呢? Django 已经为您编写了 View ,因此您所要做的就是将 View 模板放在正确的位置,然后,tada,24 克拉的 django 魔法就在空中。
关于python - 编写 django 登录页面(使用 Bootstrap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26585754/