Django實現(xiàn)簡單登錄的示例代碼
創(chuàng)建django項目
創(chuàng)建項目的命令行語句: django-admin startproject newsManage
將templates文件放在模板里面,會顯得更簡潔一些,所以我就先創(chuàng)建模板啦。
命令行語句:django-admin startapp newsModel
創(chuàng)建好模型把模型名加到setting文件下 INSTALLED_APPS 里面 , 不然到時候會報錯說找不到的

創(chuàng)建templates目錄,來存放html,js,css等文件,在setting文件下 TEMPLATES 配置templates的文件路徑 'DIRS': [os.path.join(BASE_DIR, 'templates')],
最后大致的目錄結(jié)構(gòu)就是這樣了

使用模型的url.py
創(chuàng)建項目的時候會自帶一個urls.py文件,是用來配置路徑的,都寫在一個urls里面會顯得比較亂,放在模板里面就完美的解決了這個問題
路徑:newsManage/newsManage/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('newsModel.urls'))
]
在newsModel模板下創(chuàng)建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下創(chuàng)建login.html文件,然后寫登錄頁面(用模板也太香了吧)
運行啟動服務器 python manage.py runserver

加載靜態(tài)文件
static就是放靜態(tài)文件的像 css,js 加載靜態(tài)文件也需要配置,setting最后一行加上
STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static") ]
在html里面引用,需要在前面加上{% load static %}
然后就可以引用了 <link href="{% static 'css/style.css' %}" rel="external nofollow" rel="stylesheet">
頁面跳轉(zhuǎn)
path('/register', views.register, name='register')
像上面這個注冊的url,可以通過路徑 或者 name 跳轉(zhuǎn)
<a class="text-primary" href="{% url 'register' %}" rel="external nofollow" >Sign up</a>
點擊這個鏈接就可以跳轉(zhuǎn)到注冊頁面啦
創(chuàng)建數(shù)據(jù)庫模型
在 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)
運行命令行,生成表結(jié)構(gòu)
python manage.py migrate python manage.py makemigrations python manage.py migrate newsModel
數(shù)據(jù)庫的表名就是 模型名_類名( newsModel_user )
admin/ 路徑是可以直接在瀏覽器上操作數(shù)據(jù)庫的
提交
表單提交

后臺判斷登錄是否成功
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 + ")"); 灰常重要,記得轉(zhuǎn)換一下,不然取不到,但好像別人不用轉(zhuǎn)也可以。。。。
$.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屬性設(shè)置為none
},3000);//設(shè)置三千毫秒即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)啦! 🤸🏻♀️🤸🏻♀️🤸🏻♀️
到此這篇關(guān)于Django實現(xiàn)簡單登錄的示例代碼的文章就介紹到這了,更多相關(guān)Django 登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- django如何實現(xiàn)用戶的注冊、登錄、注銷功能
- django authentication 登錄注冊的實現(xiàn)示例
- Django 登錄注冊的實現(xiàn)示例
- Python基于Django實現(xiàn)驗證碼登錄功能
- 利用django和mysql實現(xiàn)一個簡單的web登錄頁面
- Django通過自定義認證后端實現(xiàn)多種登錄方式驗證
- Django實現(xiàn)前后端登錄
- Django中使用pillow實現(xiàn)登錄驗證碼功能(帶刷新驗證碼功能)
- 給Django Admin添加驗證碼和多次登錄嘗試限制的實現(xiàn)
- 使用Tastypie登錄Django的問題解決
相關(guān)文章
Python?操作?MongoDB數(shù)據(jù)庫的方法(非?ODM)
這篇文章主要介紹了Python?操作?MongoDB?----非?ODM的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
tensorflow入門之訓練簡單的神經(jīng)網(wǎng)絡(luò)方法
本篇文章主要介紹了tensorflow入門之訓練簡單的神經(jīng)網(wǎng)絡(luò)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02

