python - 编写 django 登录页面(使用 Bootstrap)

标签 python django twitter-bootstrap authentication

我想使用 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/

相关文章:

css - Wordpress: Bootstrap 中的某些类不起作用

javascript - 在 JQuery ajax beforeSend 中调用模态对话框收集一些信息

python - 如何使用opencv在视频中仅检测左眼?

python - 如何有效地将运算符应用于两个数组的笛卡尔积?

python - Django:将结果从两个 mysql 表返回到 JSON

python - 如何替换/覆盖 EmailMultiAlternatives 的默认 header

python - (discord.py) 'User' 尝试更改成员角色时对象没有属性 'roles'

python - 在 PyGame 中切换显示的表面允许用户滚动到表面的边界之外

django - 在 Django admin 中按自定义日期范围过滤

html - 使图像位置响应?