1. 程式人生 > >django 擴充套件Django自帶User模型,實現使用者註冊與登入

django 擴充套件Django自帶User模型,實現使用者註冊與登入

from django import forms from django.contrib.auth.models import User import re def email_check(email):    pattern = re.compile(r"\"?([-a-zA-Z0-9.`?{}][email protected]\w+\.\w+)\"?")    return re.match(pattern, email) class RegistrationForm(forms.Form):    username = forms.CharField(label='Username'
, max_length=50)    email = forms.EmailField(label='Email',)    password1 = forms.CharField(label='Password', widget=forms.PasswordInput)    password2 = forms.CharField(label='Password Confirmation', widget=forms.PasswordInput)    # Use clean methods to define custom validation rules    def clean_username
(self):        username = self.cleaned_data.get('username')        if len(username) < 6:            raise forms.ValidationError("Your username must be at least 6 characters long.")        elif len(username) > 50:            raise forms.ValidationError("Your username is too long.")        else
:            filter_result = User.objects.filter(username__exact=username)            if len(filter_result) > 0:                raise forms.ValidationError("Your username already exists.")        return username    def clean_email(self):        email = self.cleaned_data.get('email')        if email_check(email):            filter_result = User.objects.filter(email__exact=email)            if len(filter_result) > 0:                raise forms.ValidationError("Your email already exists.")        else:            raise forms.ValidationError("Please enter a valid email.")        return email    def clean_password1(self):        password1 = self.cleaned_data.get('password1')

相關推薦

Django 2.0 專案實戰: 擴充套件DjangoUser模型實現使用者註冊登入

使用者的註冊與登陸是一個網站應該具有的基本功能。網上很多Django關於實現使用者註冊與登入的教程都是用Django 1.X寫的,比較老了,所以小編我覺得有必要親自動手用Django 2.0重寫使用者註

django 擴充套件DjangoUser模型實現使用者註冊登入

from django import forms from django.contrib.auth.models import User import re def email_check(email):    pattern = re.compile(r"\"?([-a-zA-Z0-9.`?{}][e

Django學習筆記(16)——擴充套件DjangoUser模型實現使用者註冊登入

一,專案題目:擴充套件Django自帶User模型,實現使用者註冊與登入   我們在開發一個網站的時候,無可避免的需要設計實現網站的使用者系統。此時我們需要實現包括使用者註冊,登入,使用者認證,登出,修改密碼等功能。Django作為一個完美主義者的終極框架,當然也會想到使用者的這些痛點,它內建了強大的使用者

Django 創建定義User模型 CustomUser

username 操作 pda let 擴展 函數 一個 登錄 muse 官方文檔裏給了兩種方法 1.創建一個Model,然後用一對一外鍵指到User,這樣就相當於是擴展了User,簡單又實用。 但是這樣沒法自定義User的save和delete函數(當然你直接去改djan

Django專案(2)-定義User模型

需要自定義User模型的原因 需要前後臺共同同一個賬號。 欄位需要自己定義,以及驗證也需要自己設定 from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUse

android 呼叫系統錄音實現語音錄製播放

相關許可權:<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission> <uses-permission android:name="and

潭州課堂25班:Ph201805201 django框架 第十三課 定義404頁面auth系統中的User模型auth系統許可權管理 (課堂筆記)

 當 DEBUG=True 時,django 內部的404報錯資訊, 自帶的報錯資訊, 要自定義404資訊,要先把 DEBUG=False , 之後要自定義4040頁面,有兩種方法,   方法1,在建立404頁面 這樣就配置完成,當訪問不存在的頁面時,跳轉到自定義的4

Django定義User模型

@python_2_unicode_compatible class AbstractBaseUser(models.Model): password = models.CharField(_('password'), max_length=128) last_login = models.D

django 模型項目應用的創建 urlviewstemplate controller

自己 就是 代碼 別名 安裝 創建 djang import 命令 1,web框架 框架--framework,是為解決一個問題兒設計一個有約束性的支持結構,可以快速的開發系統, 對於所有的web框架,本質就是一個sock的服務端,而瀏覽器就是一個sock客戶端。 WSGI

django 擴展權限,使其支持對象權限

劃分 頁面 ural ali not in *args none 意見 verbose 擴展django 自帶權限 說明 在不重寫 自帶權限的基礎上,完成支持對象權限,適用於小型項目。歡迎提出修改意見 軟件支持 jsonfield 數據庫 新建3個表 from dj

Python-Django(系統後臺管理)

django (Python Web 框架) Django是一個開放原始碼的Web應用框架,由Python寫成。採用了MVC的框架模式,即模型M,檢視V和控制器C 我們系統環境中已經安裝了Python3.3了,Django需要繼續安裝,這裡

關於Django 中啟動伺服器進入後臺admin沒有樣式的問題...

凌晨1點被這個問題搞到差點通宵,這個問題直接去百度,可以發現有很多關於這個問題的解決方法,但是不是我遇到的關鍵問題,不過這裡也順帶總結一下這些方法: 主要問題:在專案manage.py所在目錄用命令列輸入 我這裡的埠選了9999,開啟Django的自帶的伺服器,專案的靜態

Oracle 如何判斷系統user(例如導入導出的過濾用到此知識點)

系統自帶user現今大部分Oracle數據庫的版本是11G,12C: 11G : 無視圖對此做標識,可通過dba_users的創建用戶的時間與dba_users視圖INITIAL_RSRC_CONSUMER_GROUP=‘SYS_GROUP‘or ACCOUNT_STATUS in (‘LOCKED‘,‘E

Expo大作戰(二十七)--expo sdk api之Util(expo工具類)tackSnapshotAsyncSvgSQLite

help count 開發 段落 mda and mpat str 語句 簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網 我猜去全部

微信支付:手機系統的瀏覽器調用微信支付如何實現(非掃碼)

所有 價格 驗證 返回 調用 -i 是否為空 支付申請 data- Q:翻看了微信支付的api沒發現支持h5調支付接口的情況(微信js除外),然後卻發現美團的支付成功調用了,這是怎麽實現的? A: 使用微信H5支付即可。H5支付通過URL調起微信APP,

Linux刪除的openjdk安裝jdk1.8

enter鍵 jdk hot tar.gz all 版本信息 java_home path OS 第一步:查看有哪些安裝包 [root@localhost ~]# rpm -qa | grep javatzdata-java-2016g-2.el7.noarchpython

QWidget 的最大化最小化關閉按鍵的設定

 使用函式  setWindowFlags      引數:         CustomizeWindowHint  去掉視窗所有自帶按鈕                 Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint  只顯

在Win10輸入法下CSDN添加個人分類和文章標籤時無法輸入中文

Win10作業系統自帶輸入法下,在編輯部落格下方新增"文章標籤"和"個人分類"時,無法輸入中文,英文可以正常輸入,準確說是 在簡體中文輸入狀態下 我在網上查了半天終於找到了解決的方法,沒想到這個小bug,csdn竟然過了快一年還沒有解決  而這個問題18年1月份就有

使用iTerm代替mac的終端並安裝配置SpaceVim

一、使用iTerm代替mac自帶的終端 1、為什麼要使用iTerm代替mac自帶的終端?       mac雖然可以直接通過終端來連線Linux伺服器,但是mac的終端做的沒有像Windows下的xshell軟體那樣優秀,舉個簡單的例子:       想要開多個終端連線

Laravel Auth 定義user 模型目錄結構

使用自帶的Auth , 如果自定義模型, 需要修改 config/auth.php'providers' => [ 'users' => [ 'driver' =&