中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django如何實現簡單登錄

發布時間:2022-03-03 15:02:52 來源:億速云 閱讀:174 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Django如何實現簡單登錄”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Django如何實現簡單登錄”這篇文章吧。

創建django項目

創建項目的命令行語句: django-admin startproject newsManage

將templates文件放在模板里面,會顯得更簡潔一些,所以我就先創建模板啦。

命令行語句:django-admin startapp newsModel

創建好模型把模型名加到setting文件下 INSTALLED_APPS 里面 , 不然到時候會報錯說找不到的

Django如何實現簡單登錄

創建templates目錄,來存放html,js,css等文件,在setting文件下 TEMPLATES 配置templates的文件路徑 'DIRS': [os.path.join(BASE_DIR, 'templates')],

最后大致的目錄結構就是這樣了

Django如何實現簡單登錄

使用模型的url.py

創建項目的時候會自帶一個urls.py文件,是用來配置路徑的,都寫在一個urls里面會顯得比較亂,放在模板里面就完美的解決了這個問題

路徑:newsManage/newsManage/urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('newsModel.urls'))
]

在newsModel模板下創建urls.py文件 路徑:newsManage/newsModel/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.login, name='login')
]

路徑:newsManage/newsModel/views.py

def login(request):
    return render(request, 'login.html')

在templates下創建login.html文件,然后寫登錄頁面(用模板也太香了吧)
運行啟動服務器 python manage.py runserver

Django如何實現簡單登錄

加載靜態文件

static就是放靜態文件的像 css,js 加載靜態文件也需要配置,setting最后一行加上

STATICFILES_DIRS = [     os.path.join(BASE_DIR, "static") ]

在html里面引用,需要在前面加上{% load static %}
然后就可以引用了 <link href="{% static 'css/style.css' %}" rel="external nofollow" rel="stylesheet">

頁面跳轉

path('/register', views.register, name='register')

像上面這個注冊的url,可以通過路徑 或者 name 跳轉

<a class="text-primary" href="{% url 'register' %}" rel="external nofollow" >Sign up</a>

點擊這個鏈接就可以跳轉到注冊頁面啦

創建數據庫模型

在 newsManage/newsManage/init.py 配置pymysql, 沒有下載的話需要去下載pymysql

import pymysql
pymysql.install_as_MySQLdb()

路徑:newsManage/newsModel/models.py(類名就是表名)

class user(models.Model):
    username = models.CharField(max_length=30)
    password = models.CharField(max_length=30)
    email = models.EmailField(unique=True, blank=False)

運行命令行,生成表結構

python manage.py migrate
python manage.py makemigrations
python manage.py migrate newsModel

數據庫的表名就是 模型名_類名( newsModel_user )
admin/ 路徑是可以直接在瀏覽器上操作數據庫的

提交

表單提交

Django如何實現簡單登錄

后臺判斷登錄是否成功

def toLogin(request):
    if request.method == 'POST':
        username = request.POST.get("username")
        password = request.POST.get("password")
        users = user.objects.all()
        for u in users:
            if u.username == username and u.password == password:
                return redirect("home")
        context = {"msg": "用戶名或密碼錯誤!"}
        return render(request, "login.html", context)

ajax提交

data = eval("(" + data + ")"); 灰常重要,記得轉換一下,不然取不到,但好像別人不用轉也可以。。。。
$.ajax({
    type: 'POST',
    url: "{% url 'toLoginByAjax' %}",
    data: {
        'username': $("#username").val(),
        'password': $("#password").val()
    },
    dataType: 'text',
    success: function (data) {
        data = eval("(" + data + ")");
        if (data.code == 0){
            window.location.href = "{% url 'home' %}"
        } else {
            $(".msg").html(data.msg);
                setTimeout(function(){//定時器
                $(".msg").css("display","none");//將圖片的display屬性設置為none
            },3000);//設置三千毫秒即3秒
        }
    },
    error: function () {
        console.log("somewhere is wrong")
    }
  })  

def toLoginByAjax(request):
    username = request.POST.get("username")
    password = request.POST.get("password")
    users = user.objects.all()
    for u in users:
        if u.username == username and u.password == password:
            message = {"code": 0, "msg": "登陸成功!"}
            return JsonResponse(message)
    message = {"code": 400, "msg": "登陸失敗,用戶名或密碼錯誤!"}
    return JsonResponse(message)

就可以成功登錄到主頁(home.html)啦! 

以上是“Django如何實現簡單登錄”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临江市| 渝北区| 鄂尔多斯市| 上饶市| 吉林市| 榆树市| 宁远县| 万载县| 波密县| 灵丘县| 尼玛县| 嘉善县| 甘洛县| 尖扎县| 四子王旗| 旺苍县| 西宁市| 西乌珠穆沁旗| 区。| 庆城县| 荃湾区| 中卫市| 红桥区| 芜湖县| 乌恰县| 洱源县| 巩义市| 景宁| 景泰县| 巍山| 东乡族自治县| 黎城县| 延川县| 尖扎县| 新安县| 霍林郭勒市| 栾城县| 辰溪县| 甘泉县| 磐安县| 桃源县|