最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Django中創(chuàng)建自己的自定義用戶模型

 更新時間:2022年01月26日 09:35:19   作者:Yong?Yue  
這篇文章主要介紹了在Django中創(chuàng)建自己的自定義用戶模型,創(chuàng)建自己的自定義用戶模型至關(guān)重要。將來,如果要對模型進(jìn)行一些更改,則可以輕松進(jìn)行這些更改。不然我們可能必須對模型進(jìn)行一些更改,而且代碼的某些部分也將被更改,下面一起進(jìn)入文章里哦阿姐個表格的詳細(xì)內(nèi)容吧

自定義用戶模型有什么需求?

創(chuàng)建自己的自定義用戶模型至關(guān)重要。將來,如果要對模型進(jìn)行一些更改,則可以輕松進(jìn)行這些更改。不然我們可能必須對模型進(jìn)行一些更改,而且代碼的某些部分也將被更改。在某些網(wǎng)站中,與用戶名相比,使用電子郵件進(jìn)行登錄是有意義的。因此,對于程序員而言,擁有自定義用戶模型是一個好習(xí)慣。

本文將幫助大家根據(jù)需要創(chuàng)建自己的自定義用戶模型。請繼續(xù)執(zhí)行以下步驟。

  • Django 安裝
  • 創(chuàng)建Django應(yīng)用
  • 該應(yīng)用程序的自定義模型
  • 遷移數(shù)據(jù)庫

1. Django安裝

設(shè)置Django之后,進(jìn)入創(chuàng)建的環(huán)境。然后,我們可以通過以下命令創(chuàng)建Django項目。

django-admin startproject mysite

2.創(chuàng)建Django應(yīng)用

如果發(fā)現(xiàn)某些網(wǎng)站使用了類似/ accounts /的URL,它們看起來就是專業(yè)代碼。因此,我們還需要創(chuàng)建一個名為accounts的應(yīng)用程序,在其中管理與該帳戶有關(guān)的所有事情。因此,在當(dāng)前環(huán)境中,使用以下命令創(chuàng)建Django應(yīng)用。

python manage.py startapp accounts

創(chuàng)建后,該應(yīng)用將包含基本文件。

創(chuàng)建的文件如下所示:

accounts/
? ? __init__.py
? ? admin.py
? ? apps.py
? ? models.py
? ? tests.py
? ? views.py

一旦創(chuàng)建,所有的數(shù)據(jù)庫模型代碼都應(yīng)該寫在models.py文件中。另外,不要忘記創(chuàng)建一個urls.py文件,該文件有助于通過帳戶應(yīng)用程序路由鏈接。創(chuàng)建完成后,讓我們進(jìn)入根據(jù)我們的需求構(gòu)建自定義用戶模型的下一步。

3.該應(yīng)用程序的自定義模型

因此,為了創(chuàng)建自定義用戶模型,我們需要在models.py文件中寫下以下代碼,因為python使用對象來管理和訪問存儲在數(shù)據(jù)庫中的數(shù)據(jù)。

下面提到了models.py文件的代碼:

from django.db import models
from django.contrib.auth.models import AbstractBaseUser , BaseUserManager
import uuid


class UserManager(BaseUserManager):
? ? def create_user(self, email, firstname, lastname, phone,password=None):
? ? ? ? user = self.model(
? ? ? ? ? ? email = self.normalize_email(email),
? ? ? ? ? ? firstname = firstname,
? ? ? ? ? ? lastname = lastname,
? ? ? ? ? ? phone = phone,
? ? ? ? )
? ? ? ? user.set_password(password)
? ? ? ? user.save(using = self._db)
? ? ? ? return user

? ? def create_superuser(self, email,firstname,lastname,phone,password=None):
? ? ? ? user = self.create_user(
? ? ? ? ? ? email=email,
? ? ? ? ? ? password=password,
? ? ? ? ? ? firstname = firstname,
? ? ? ? ? ? lastname = lastname,
? ? ? ? ? ? phone = phone,
? ? ? ? )
? ? ? ? user.is_admin = True
? ? ? ? user.is_staff = True
? ? ? ? user.save(using=self._db)
? ? ? ? return user

class User(AbstractBaseUser):
? ? id = models.CharField(max_length=200, default=uuid.uuid4,unique=True,primary_key=True)
? ? email = models.EmailField(null=False, max_length=100,unique=True)
? ? firstname = models.CharField(null=False, max_length=100)
? ? lastname = models.CharField(null=False, max_length=100)
? ? phone = models.IntegerField(null=False,unique=True)
? ? date_joined = models.DateTimeField(auto_now=True)
? ? last_login = models.DateTimeField(auto_now=True)
? ? is_admin = models.BooleanField(default = False)
? ? is_active = models.BooleanField(default = True)
? ? is_staff = models.BooleanField(default = False)
? ? is_superuser = models.BooleanField(default = False)

? ? USERNAME_FIELD = 'email'
? ? REQUIRED_FIELDS = ['firstname','lastname','phone']

? ? objects = UserManager()

? ? def __str__(self):
? ? ? ? return self.email + ", " + self.firstname

? ? def has_perm(self, perm, obj = None):
? ? ? ? return self.is_admin

? ? def has_module_perms(self, app_label):
? ? ? ? return True

用戶類包含表的字段或結(jié)構(gòu),我們在其中獲取有關(guān)用戶的一些詳細(xì)信息以及其中的某些條件。為了管理User類,我們有UserManager,它將用于創(chuàng)建新用戶或超級用戶。就像我之前說的,這里的用戶名字段將被替換為電子郵件。它比用戶名字段更有意義。還提到了必填字段。通過使用電子郵件作為用戶名字段,它會自動將電子郵件字段添加為必不可少的字段。

因此,通過UserManager,我們可以創(chuàng)建一個新的普通用戶和一個超級用戶。user.set_password()會將純文本密碼哈希為默認(rèn)的哈希算法。Django將PBKDF2與SHA-256哈希一起使用,并具有密碼擴(kuò)展機(jī)制。user.save()函數(shù)將使用字段和哈希密碼保存創(chuàng)建的用戶。創(chuàng)建自定義用戶模型很簡單。

在這里需要注意,在創(chuàng)建模型之前不要遷移模型。在此之前,創(chuàng)建模型后,我們必須使用自定義模型更新Django設(shè)置文件,否則Django將使用其自己的預(yù)先實現(xiàn)的模型。只需在項目目錄中的settings.py文件中使用此代碼即可。

AUTH_USER_MODEL = ‘a(chǎn)ccounts.User'

設(shè)置好模型后,就該將模型遷移到數(shù)據(jù)庫了。

4.遷移模型

現(xiàn)在,我們準(zhǔn)備通過將更改遷移到數(shù)據(jù)庫中來遷移自定義用戶模型。使用以下命令在當(dāng)前環(huán)境中遷移并執(zhí)行該代碼。

python manage.py makemigrations
python manage.py migrate

此命令將查找Django項目中的所有模型和模型中的更改。如果要專門為應(yīng)用程序進(jìn)行遷移,可以使用以下命令進(jìn)行。

python manage.py makemigrations <app_name>
python manage.py migrate <app_name>

可以將替換為帳戶,以僅在該應(yīng)用程序上進(jìn)行更改。

到此這篇關(guān)于在Django中創(chuàng)建自己的自定義用戶模型的文章就介紹到這了,更多相關(guān)Django中創(chuàng)建自己的自定義用戶模型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django Haystack 全文檢索與關(guān)鍵詞高亮的實現(xiàn)

    Django Haystack 全文檢索與關(guān)鍵詞高亮的實現(xiàn)

    這篇文章主要介紹了Django Haystack 全文檢索與關(guān)鍵詞高亮的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 詳解Python 協(xié)程的詳細(xì)用法使用和例子

    詳解Python 協(xié)程的詳細(xì)用法使用和例子

    這篇文章主要介紹了詳解Python 協(xié)程的詳細(xì)用法和例子,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Python中X[:,0]和X[:,1]的用法

    Python中X[:,0]和X[:,1]的用法

    這篇文章主要介紹了Python中X[:,0]和X[:,1]的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Python 列表(List)的底層實現(xiàn)原理分析

    Python 列表(List)的底層實現(xiàn)原理分析

    這篇文章主要介紹了Python 列表(List)的底層實現(xiàn)原理分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 解決python-docx打包之后找不到default.docx的問題

    解決python-docx打包之后找不到default.docx的問題

    今天小編就為大家分享一篇解決python-docx打包之后找不到default.docx的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 用python批量移動文件

    用python批量移動文件

    這篇文章主要介紹了如何用python批量移動文件,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • 手把手教你使用Python解決簡單的zip文件解壓密碼

    手把手教你使用Python解決簡單的zip文件解壓密碼

    本文主要介紹了Python解決簡單的zip文件解壓密碼,使用的核心模塊是python標(biāo)準(zhǔn)庫中的zipfile模塊。具有一定的參考價值,感興趣的可以了解一下
    2021-11-11
  • Python實例練習(xí)水仙花數(shù)問題講解

    Python實例練習(xí)水仙花數(shù)問題講解

    這篇文章介紹了Python找水仙花數(shù)從分析到實現(xiàn)的過程,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 淺談python的dataframe與series的創(chuàng)建方法

    淺談python的dataframe與series的創(chuàng)建方法

    今天小編就為大家分享一篇淺談python的dataframe與series的創(chuàng)建方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python中import,from……import的使用詳解

    python中import,from……import的使用詳解

    這篇文章主要介紹了python中import,from……import的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02

最新評論

湖北省| 蒲城县| 永登县| 隆化县| 碌曲县| 商丘市| 满城县| 平原县| 北川| 四会市| 徐闻县| 错那县| 集安市| 墨竹工卡县| 延吉市| 页游| 江西省| 蛟河市| 柘荣县| 齐齐哈尔市| 苏州市| 大渡口区| 扎鲁特旗| 永修县| 厦门市| 东阿县| 周至县| 池州市| 增城市| 舞钢市| 进贤县| 南木林县| 马龙县| 晴隆县| 女性| 精河县| 浏阳市| 张掖市| 寿光市| 阿荣旗| 得荣县|