国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Django——Auth模塊以及admin站點(diǎn)

這篇具有很好參考價(jià)值的文章主要介紹了Django——Auth模塊以及admin站點(diǎn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Django——Auth模塊

一、Auth 模塊

Auth 用戶認(rèn)證,本質(zhì)上也是設(shè)置 Session。

Django 認(rèn)證系統(tǒng)同時(shí)處理認(rèn)證和授權(quán)
	認(rèn)證:驗(yàn)證一個(gè)用戶是否為 django 聲明的用戶,如果是可以進(jìn)行登錄
	授權(quán):決定一個(gè)已經(jīng)驗(yàn)證的用戶有哪些功能是允許操作。

在 django 遷移數(shù)據(jù)庫(kù)的是時(shí)候會(huì)自動(dòng)生成一個(gè)用戶認(rèn)證表:auth_user , 存放用戶基本信息(用戶名 , 密碼,郵箱……)

擴(kuò)建 auth_user 表中的字段數(shù)據(jù)

方法一:(不推薦)
	創(chuàng)建一對(duì)一,綁定 auth_user 表

方法二:繼承AbstractUser
在定義模型類的時(shí)候繼承 AbstractUser , 進(jìn)行數(shù)據(jù)庫(kù)遷移不會(huì)生成 auth_user , 原有 auth_user 中的字段就繼承到自定義的模型類中。
實(shí)現(xiàn)字段的擴(kuò)建,直接在自定義模型類中添加額外新的字段即可。

擴(kuò)建 auth_user 表的前提:
	1、在實(shí)現(xiàn)擴(kuò)建的時(shí)候,不允許,不能先執(zhí)行遷移數(shù)據(jù)庫(kù)(如果已經(jīng)遷移過(guò)數(shù)據(jù),那么就換一個(gè)新的數(shù)據(jù)庫(kù))
	2、在擴(kuò)建中,只能添加字段,不可以修改原有的字段。

重新配置 auth 認(rèn)證模型類

# 配置自定義認(rèn)證模型類
# AUTH_USER_MODEL = '應(yīng)用名稱.類名稱'
AUTH_USER_MODEL = 'AuthApp.User'
from django.shortcuts import render , HttpResponse , redirect
from django.views import View
from AuthApp.models import User
from django.contrib.auth import authenticate , login

def index(request):
    # request.user , 獲取用戶名
    # AnonymousUser 匿名用戶,表示用戶名為登錄
    print(request.user)
    # 判斷用戶是否登錄
    print(request.user.is_authenticated)
    return render(request , 'index.html')

class RegisterView(View):

    def get(self , request):
        return render(request , 'register.html')

    def post(self , request):
        name = request.POST.get('username')
        password = request.POST.get('password')
        email = request.POST.get('email')
        mobile = request.POST.get('mobile')
        '''
        create:保存用戶數(shù)據(jù) ,密碼不加密
        create_user:密碼加密
        '''
        User.objects.create_user(username=name , password=password , email=email , mobile=mobile)
        return redirect('/login/')

class LoginView(View):

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

    def post(self , request):
        name = request.POST.get('username')
        password = request.POST.get('password')

        # authenticate 認(rèn)證用戶信息 , 用戶存在返回用戶數(shù)據(jù) , 用戶不存在返回 None
        user = authenticate(username=name , password=password)

        if not user:
            return render(request , 'login.html' , {'error_message':"用戶名或者密碼錯(cuò)誤"})

        # login 登錄成功, 保存用戶登錄狀態(tài)
        login(request , user)
        return redirect('/index/')

實(shí)現(xiàn)驗(yàn)證登錄,以及退出登錄

# 配置全局的登錄重定向 url
LOGIN_URL = '/login/'
from django.contrib.auth.decorators import login_required
'''
login_required 用戶驗(yàn)證登錄的裝飾器
使用的時(shí)候需要配置局部的重定向 url
@login_required(login_url='/login/')

配置項(xiàng)目全局的從定向 url , 到配置文件中添加 login_url 的信息
'''
@login_required
def cart(request):
    return HttpResponse('<h1>購(gòu)物車頁(yè)面</h1>')

# 注銷用戶信息之前必須保證用戶是登錄狀態(tài)
@login_required
def logoutview(request):
    # 注銷用戶(清除 Session 中的用戶數(shù)據(jù))
    logout(request)
    return redirect('/login/')

二、admin 站點(diǎn)

django 提供的網(wǎng)站后臺(tái)數(shù)據(jù)管理

創(chuàng)建管理員用戶

python manage.py createsuperuser

注冊(cè)的時(shí)候,用戶名不要中文,用戶名和密碼不要有一串一致的數(shù)據(jù) ,郵箱允許為空 。

使用 admin 站點(diǎn)管理模型類數(shù)據(jù)

class Goods(models.Model):
    # verbose_name 對(duì) admin站點(diǎn)中的模型類字段名稱設(shè)置,對(duì)數(shù)據(jù)庫(kù)不影響
    name = models.CharField(max_length=50 , verbose_name='商品名稱')
    price = models.DecimalField(max_digits=11 , decimal_places=3 , verbose_name='價(jià)格')
    stock = models.IntegerField(verbose_name='庫(kù)存')
    sales = models.IntegerField(verbose_name='銷量')
    
    class Meta:
        db_table = 'goods'
        #設(shè)置 admin 站點(diǎn)中的表名
        verbose_name = '商品數(shù)據(jù)表'
        verbose_name_plural = verbose_name

注冊(cè)模型類 ; 到所在應(yīng)用下的 admin.py 文件中進(jìn)行注冊(cè)

from AdminApp.models import Goods
admin.site.register(Goods)

修改 admin 站點(diǎn)中的應(yīng)用名稱

在所在應(yīng)用中的__init__.py添加

default_app_config = 'AdminApp.apps.AdminappConfig'

在對(duì)應(yīng)的應(yīng)用中的 apps.py 維納設(shè)置站點(diǎn)使用的應(yīng)用名稱

在 apps.py 的類中添加屬性

verbose_name = '商品表'

admin 模型類數(shù)據(jù)操作 , 在 admin.py 文件中操作

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):

    # list_display 在站點(diǎn)中顯示指定字段數(shù)據(jù)信息
    list_display = ['id' , 'name' , 'price' , 'sales']

    # list_filter 選擇指定的字段作為條件過(guò)濾
    list_filter = ['name' , 'sales']

    # list_per_page 設(shè)置分頁(yè) , 指定每一頁(yè)有多少條數(shù)據(jù)
    list_per_page = 2

    # search_fields 配置搜索條件,數(shù)據(jù)類型要用元組
    search_fields = ('id' , 'name')

    # list_editable 在顯示列表頁(yè)中設(shè)置允許修改的字段數(shù)據(jù)
    list_editable = ('name' , 'price')

    # # fields 在編輯頁(yè)中指定字段允許修改
    # fields = ('name' , 'price')

    # fieldsets 設(shè)置編輯頁(yè)分組顯示數(shù)據(jù)
    fieldsets = (
        # ('分組名稱' , {'fields':[指定字段名]}
        ('商品基本信息' , {'fields':['name' , 'price']}),
        ('商品銷量信息' , {'fields':['sales' , 'stock']})
    )

    # 設(shè)置只讀字段
    readonly_fields = ('name',)

在 admin 站點(diǎn)中可以自定義字段數(shù)據(jù) , 不影響數(shù)據(jù)庫(kù)

def num(g):
    # 參數(shù) g , 下面的類會(huì)自動(dòng)的將模型類傳入
    add = g.price * g.sales
    return add
# 制作 num 在 admin 站點(diǎn)中的字段名
num.short_description = '商品銷售額'

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):

    # list_display 在站點(diǎn)中顯示指定字段數(shù)據(jù)信息
    list_display = ['id' , 'name' , 'price' , 'sales' , num]

遭周文而舒志

鏈接:https://pan.baidu.com/s/1ir9eM2kL2D7hU9ZTNu4-Xw
提取碼:malw文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-861599.html

到了這里,關(guān)于Django——Auth模塊以及admin站點(diǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Django的django.contrib.auth.models模塊中的AbstractUser類介紹。

    在Django框架中, django.contrib.auth.models 模塊提供了用于身份驗(yàn)證和授權(quán)的相關(guān)功能。其中, AbstractUser 類是Django默認(rèn)的用戶模型(user model)的抽象基類。 AbstractUser 類提供了一些常見(jiàn)的用戶相關(guān)字段和方法的默認(rèn)實(shí)現(xiàn),它可以作為創(chuàng)建自定義用戶模型的基礎(chǔ)。當(dāng)你在Django項(xiàng)目中

    2024年02月13日
    瀏覽(17)
  • python-0004-django站點(diǎn)

    django自帶站點(diǎn)用來(lái)操作增刪改查 項(xiàng)目setting.py 在子應(yīng)用的models.py中創(chuàng)建,如下: 在pycharm的終端或虛擬環(huán)境執(zhí)行 在pycharm的終端或虛擬環(huán)境執(zhí)行 此時(shí)會(huì)在項(xiàng)目的db.sqlite3中生成信息 在子應(yīng)用的admin.py中注冊(cè),示例如下: 目的:顯示更全的數(shù)據(jù) 重寫model的__str__,如: http://ip:po

    2024年03月15日
    瀏覽(44)
  • windows解決python安裝django架構(gòu)沒(méi)有django-admin命令

    windows解決python安裝django架構(gòu)沒(méi)有django-admin命令

    目錄 一.嘗試安裝與配置 1.直接pip命令安裝 2.用pycharm測(cè)試 3.官網(wǎng)下包安裝 二.解決 1.找到django安裝的路徑 2.配置系統(tǒng)變量 3.測(cè)試創(chuàng)建項(xiàng)目 3.1.執(zhí)行訪問(wèn)頁(yè)面 3.2.解決 3.3.繼續(xù)測(cè)試 4.pycharm打開(kāi) ? ? 新建項(xiàng)目測(cè)試 ? ?注:發(fā)現(xiàn)沒(méi)有django這個(gè)框架選項(xiàng),后面發(fā)現(xiàn)這個(gè)功能只有專業(yè)版才

    2024年02月06日
    瀏覽(26)
  • python Django的admin后臺(tái)建設(shè)

    python Django的admin后臺(tái)建設(shè)

    1、 django提供了完善的后臺(tái)管理數(shù)據(jù)庫(kù)的接口 ,可供開(kāi)發(fā)過(guò)程中調(diào)用和測(cè)試使用 2、 django 會(huì)搜集所有已注冊(cè)的模型類 ,為這些模型類提供數(shù)據(jù)管理界面,供開(kāi)發(fā)者使用 admin配置步驟 1、創(chuàng)建后臺(tái)管理賬號(hào)-該賬號(hào)為管理后臺(tái)最高權(quán)限賬號(hào)—注意:可以創(chuàng)建多個(gè)超級(jí)用戶 python

    2023年04月16日
    瀏覽(20)
  • django報(bào)錯(cuò)設(shè)置auth User

    django報(bào)錯(cuò)設(shè)置auth User

    1.報(bào)錯(cuò):auth.User.groups... auth.User.user_permissions...? 我們的用戶組、用戶權(quán)限只能關(guān)聯(lián)一個(gè)用戶 , 我們自己定義了一個(gè)用戶表,系統(tǒng)還有一個(gè)用戶表,這時(shí)候就會(huì)出問(wèn)題。 解決辦法: 讓給我們自己定義的user替換系統(tǒng)的就可以了。 settings.py里面加上: 可能會(huì)報(bào)錯(cuò):ValueError: Inv

    2024年02月16日
    瀏覽(16)
  • django_auth_ldap登錄權(quán)限

    django_auth_ldap登錄權(quán)限

    用戶登錄權(quán)限分為三種,通過(guò)is_active,is_staff,is_superuser標(biāo)識(shí)??梢詫?duì)組賦予對(duì)應(yīng)的權(quán)限。 設(shè)定active組、staff組和superuser組分別對(duì)應(yīng)三種權(quán)限。在不同組權(quán)限下的登錄情況如下: 當(dāng)用戶不屬于任何一組: 登錄失敗,提示如圖: 當(dāng)用戶僅屬于active組: 登錄失敗,提示如圖: 當(dāng)用

    2024年02月07日
    瀏覽(16)
  • Django學(xué)習(xí)筆記-默認(rèn)的用戶認(rèn)證系統(tǒng)(auth)

    Django學(xué)習(xí)筆記-默認(rèn)的用戶認(rèn)證系統(tǒng)(auth)

    Django 自帶一個(gè)用戶驗(yàn)證系統(tǒng)。它負(fù)責(zé)處理用戶賬號(hào)、組、權(quán)限和基于cookie的用戶會(huì)話。 Django 驗(yàn)證系統(tǒng)處理驗(yàn)證和授權(quán)。簡(jiǎn)單來(lái)說(shuō),驗(yàn)證檢驗(yàn)用戶是否是他們的用戶,授權(quán)決定已驗(yàn)證用戶能做什么。這里的術(shù)語(yǔ)驗(yàn)證用于指代這兩個(gè)任務(wù)。 認(rèn)證系統(tǒng)由以下部分組成: 用戶 權(quán)限

    2024年02月14日
    瀏覽(20)
  • django admin頁(yè)面美化

    美化 Django Admin 頁(yè)面可以通過(guò)多種方式實(shí)現(xiàn),從簡(jiǎn)單的 CSS 樣式調(diào)整到完全自定義模板。以下是一些建議和步驟來(lái)美化 Django Admin 頁(yè)面: 1. 使用 CSS 覆蓋默認(rèn)樣式 這是最簡(jiǎn)單的方法,你可以通過(guò)添加自定義 CSS 文件來(lái)覆蓋 Django Admin 的默認(rèn)樣式。 步驟: 在你的 Django 項(xiàng)目中創(chuàng)建

    2024年02月22日
    瀏覽(20)
  • Django之a(chǎn)dmin后臺(tái)頁(yè)面功能詳解

    Django之a(chǎn)dmin后臺(tái)頁(yè)面功能詳解

    Django是一種流行的Python Web開(kāi)發(fā)框架,它提供了一個(gè)功能強(qiáng)大且易于使用的admin界面,用于管理網(wǎng)站的后臺(tái)數(shù)據(jù)和功能。Django的admin界面是自動(dòng)生成的,它根據(jù)你的模型類自動(dòng)創(chuàng)建表單和列表視圖。你只需將模型類注冊(cè)到admin界面,就可以輕松地管理和操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)。 a

    2024年04月26日
    瀏覽(21)
  • Django admin中展示字段設(shè)置外鏈

    假設(shè)有一個(gè)爬蟲(chóng)程序,它的主要作用是爬取一些新聞標(biāo)題和該新聞的訪問(wèn)鏈接,總的來(lái)說(shuō)數(shù)據(jù)項(xiàng)就兩個(gè): 新聞標(biāo)題 訪問(wèn)鏈接(URL) 作為開(kāi)發(fā)者我希望在Django admin頁(yè)面中展示“訪問(wèn)鏈接”的字段能夠直接點(diǎn)擊訪問(wèn),而不是復(fù)制下來(lái)再粘貼到瀏覽器中訪問(wèn)。 鑒于此,我需要給“

    2024年02月12日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包