日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django rest framework如何自定義用戶表

瀏覽:25日期:2024-09-04 15:25:51
目錄說明1. Django項目和應用創建2. 自定義User表3. 序列化和路由3. DRF配置4. 同步數據庫5. 測試6. 命令行注冊用戶說明

Django 默認的用戶表 auth_user 包含 id, password, last_login, is_superuser, username, last_name, email, is_staff, is_active, date_joined, first_name 字段。這些基本字段不夠用時,在此基本表上拓展字段是很好選擇。本文介紹在 DRF(Django Rest Framework) 上使用自定義用戶表進行接口訪問控制的功能設計。

1. Django項目和應用創建

先裝必要的模塊

pip install djangopip install djangorestframework

創建項目文件夾、項目和應用

E:SweetYaya> mkdir MyProj01E:SweetYaya> cd MyProj01E:SweetYayaMyProj01> django-admin startproject MyProj01 .E:SweetYayaMyProj01> django-admin startapp MyApp

同步數據庫

E:SweetYayaMyProj01> python manage.py migrateOperations to perform: Apply all migrations: admin, auth, contenttypes, sessionsRunning migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK ... Applying sessions.0001_initial... OK

執行如下命令后測試訪問 http://127.0.0.1:8000/

E:SweetYayaMyProj01>python manage.py runserverWatching for file changes with StatReloaderPerforming system checks...System check identified no issues (0 silenced).June 07, 2021 - 21:16:57Django version 3.2.4, using settings ’MyProj01.settings’Starting development server at http://127.0.0.1:8000/Quit the server with CTRL-BREAK.2. 自定義User表

打開 MyApp/models.py 文件,創建繼承自 AbstractUser 的 UserProfile 類,給它添加 name 和 mobile 字段,它就是我們自定義的用戶表。

from django.db import modelsfrom django.contrib.auth.models import AbstractUserclass UserProfile(AbstractUser): name = models.CharField(max_length=30, null=True, blank=True, verbose_name='姓名') mobile = models.CharField(max_length=11, verbose_name='電話') class Meta:verbose_name = '用戶'verbose_name_plural = '用戶'def __str__(self): return self.name3. 序列化和路由

我們直接在 MyProj01/url.py 中進行定義序列化方法和路由配置

from django.urls import path, includefrom MyApp.models import UserProfilefrom rest_framework import routers, serializers, viewsets# Serializers define the API representation.class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta:model = UserProfilefields = [’url’, ’username’, ’name’, ’mobile’, ’email’, ’is_staff’]# ViewSets define the view behavior.class UserViewSet(viewsets.ModelViewSet): queryset = UserProfile.objects.all() serializer_class = UserSerializer# Routers provide an easy way of automatically determining the URL conf.router = routers.DefaultRouter()router.register(’users’, UserViewSet)# Wire up our API using automatic URL routing.# Additionally, we include login URLs for the browsable API.urlpatterns = [ path(’’, include(router.urls)), path(’api-auth/’, include(’rest_framework.urls’, namespace=’rest_framework’))]3. DRF配置

找到 MyProj01/settings.py ,做如下配置

加入上面創建的應用和 rest_framework

INSTALLED_APPS = [ ’django.contrib.admin’,... ’rest_framework’, ’MyApp’,]

添加全局認證設置

REST_FRAMEWORK = { ’DEFAULT_PERMISSION_CLASSES’: [’rest_framework.permissions.IsAuthenticated’ ]}

修改默認用戶表,至此 settings.py 全部配置完成了。

AUTH_USER_MODEL = ’MyApp.UserProfile’4. 同步數據庫

執行 makemigrations 命令

E:SweetYayaMyProj01> python manage.py makemigrationsMigrations for ’MyApp’: MyAppmigrations0001_initial.py - Create model UserProfile

執行 migrate 命令出現如下錯誤

E:SweetYayaMyProj01> python manage.py migrateTraceback (most recent call last): File 'manage.py', line 22, in <module> main() File 'manage.py', line 18, in main execute_from_command_line(sys.argv) File 'D:Program FilesPython36libsite-packagesdjangocoremanagement__init__.py', line 419, in execute_from_command_line utility.execute() File 'D:Program FilesPython36libsite-packagesdjangocoremanagement__init__.py', line 413, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File 'D:Program FilesPython36libsite-packagesdjangocoremanagementbase.py', line 354, in run_from_argv self.execute(*args, **cmd_options) File 'D:Program FilesPython36libsite-packagesdjangocoremanagementbase.py', line 398, in execute output = self.handle(*args, **options) File 'D:Program FilesPython36libsite-packagesdjangocoremanagementbase.py', line 89, in wrapped res = handle_func(*args, **kwargs) File 'D:Program FilesPython36libsite-packagesdjangocoremanagementcommandsmigrate.py', line 95, in handle executor.loader.check_consistent_history(connection) File 'D:Program FilesPython36libsite-packagesdjangodbmigrationsloader.py', line 310, in check_consistent_history connection.alias,django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency MyApp.0001_initial on database ’default’.

解決辦法

先 makemigrations打開 settings.py ,注釋掉 INSTALL_APPS 中的’django.contrib.admin’,打開 urls.py ,注釋掉 urlpatterns 中的 admin,再 migrate 就不報錯了。最后注意把注釋內容恢復回來就好了。

E:SweetYayaMyProj01> python manage.py migrateOperations to perform: Apply all migrations: MyApp, admin, auth, contenttypes, sessionsRunning migrations: Applying contenttypes.0001_initial... OK Applying contenttypes.0002_remove_content_type_name... OK ... Applying admin.0003_logentry_add_action_flag_choices... OK Applying sessions.0001_initial... OK5. 測試

執行命令

E:SweetYayaMyProj01>python manage.py runserver

訪問 http://127.0.0.1:8000/users/ 出現結果如下,此時表明配置成功,但是尚未進行用戶登錄無權訪問。

Django rest framework如何自定義用戶表

6. 命令行注冊用戶

進入 Python Shell

E:SweetYayaMyProj01> python manage.py shellPython 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)]Type ’copyright’, ’credits’ or ’license’ for more informationIPython 6.5.0 -- An enhanced Interactive Python. Type ’?’ for help.

鍵入如下代碼

In [1]: from MyApp.models import UserProfileIn [2]: from django.contrib.auth.hashers import make_passwordIn [3]: ist = UserProfile(username=’guest01’,password=make_password(’123456’))In [4]: ist.save()In [5]: ist = UserProfile(username=’guest02’,password=make_password(’123456’))In [6]: ist.save()

然后在數據庫中查看 MyApp_userprofile 表發現多了兩條記錄,添加成功,繼續訪問 http://127.0.0.1:8000/users/ 地址,使用用戶密碼登錄可見如下。測試完成。

Django rest framework如何自定義用戶表

到此這篇關于Django rest framework如何自定義用戶表的文章就介紹到這了,更多相關Django rest framework自定義用戶表內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
黄色免费成人| 韩国女主播一区二区三区| 涩涩av在线| 蜜桃成人精品| 久久亚洲国产| 欧洲毛片在线视频免费观看| 久久久久久久久99精品大| 秋霞国产精品| 亚洲精品在线观看91| 亚洲欧美日韩视频二区| 中文一区在线| 亚洲1区在线观看| 午夜宅男久久久| 亚洲性视频h| 激情综合激情| 国产欧美一区二区三区精品观看 | 亚洲三级av| 日韩一区二区三区精品| 欧美日韩在线精品一区二区三区激情综合| 日本午夜精品视频在线观看| 91亚洲精品视频在线观看| 国产精品入口久久| 日韩综合在线| 伊人精品一区| 免费国产亚洲视频| 91福利精品在线观看| 欧美亚洲一区二区三区| 国产一区二区三区日韩精品| 高清日韩欧美| 91精品成人| 综合一区av| 国产乱人伦丫前精品视频 | 丁香婷婷久久| 好看的av在线不卡观看| 丁香婷婷久久| 久久久一二三| 视频一区在线视频| 日韩中文字幕高清在线观看| 在线综合欧美| 久久香蕉精品香蕉| 成人午夜在线| 久久精品一区二区国产| 国产精品草草| 麻豆精品蜜桃| 日韩中出av| 97精品国产一区二区三区| 麻豆91精品| 久久精品国产一区二区| 精品一区在线| 国产精品中文字幕制服诱惑| 青青久久av| 18国产精品| 久久婷婷亚洲| 亚欧成人精品| 不卡福利视频| 蜜桃视频在线观看一区二区| 精品一区不卡| 91看片一区| 亚洲一区二区三区四区电影| 国产在线不卡一区二区三区| 一区二区亚洲精品| 久久av超碰| 久久国产精品久久久久久电车 | 亚洲福利久久| 日本视频中文字幕一区二区三区| 日韩欧美精品| 日韩av网站免费在线| 日韩中文字幕高清在线观看| 久久国产99| 精品久久电影| 日韩中文字幕av电影| 精品视频一区二区三区在线观看 | 欧美aaaaaa午夜精品| 波多野结衣一区| 国产精品一级| 亚洲成人一区| 成人台湾亚洲精品一区二区| 五月亚洲婷婷 | 黄色国产精品| 精品一区视频| 三级一区在线视频先锋| 日韩欧美精品综合| 国产精品一区二区中文字幕| 亚洲一区网站| 精品少妇一区| 日韩欧美2区| 午夜国产一区二区| 免费福利视频一区二区三区| 日韩av一二三| 亚洲综合欧美| 在线视频观看日韩| 国产一区二区三区黄网站| 97精品国产99久久久久久免费| 国产精品毛片| 国产精品婷婷| 色88888久久久久久影院| 午夜在线视频一区二区区别 | 久久国产视频网| 久久精品三级| 免费av一区二区三区四区| 久草免费在线视频| 日韩精品亚洲专区| 欧美精品黄色| 夜夜嗨一区二区| 亚洲天堂免费| 奶水喷射视频一区| 日韩视频久久| 欧美中文一区二区| 国产一区二区三区久久| 精品欧美激情在线观看| 亚洲综合色婷婷在线观看| 美女视频一区在线观看| 日韩国产在线一| 国产欧美自拍| jizzjizz中国精品麻豆| 精品国产一区二区三区2021| 国产精品99精品一区二区三区∴ | 美腿丝袜亚洲三区| 久久国产人妖系列| 亚洲精品韩国| 亚洲国产专区| 精品久久91| 欧美日韩国产高清| 香蕉久久夜色精品国产| 好看的av在线不卡观看| 国产精品丝袜xxxxxxx| 国产综合色产| 免费国产亚洲视频| 亚洲a在线视频| 亚洲欧美成人综合| 人人爽香蕉精品| 国产精品成人国产| 国产精品一区二区中文字幕| 国产精品视区| 麻豆精品蜜桃| 9999国产精品| 91精品国产自产观看在线| 国产精品一区二区av交换| 激情婷婷综合| 亚洲1区在线观看| 国产精品一国产精品k频道56| 亚洲午夜久久| 久久影院午夜精品| 亚洲精品美女91| 亚洲欧美日韩视频二区| 激情欧美一区| 国产精品大片| 综合国产精品| 婷婷成人基地| 美女少妇全过程你懂的久久| 国产精品美女久久久久久不卡| 午夜久久影院| 欧美一区自拍| 久久精品国产99国产精品| 91亚洲国产| 91精品综合| 日本不良网站在线观看| 久久久久伊人| 视频精品一区| 亚洲aⅴ网站| 卡一精品卡二卡三网站乱码| 蜜臀va亚洲va欧美va天堂| 久久理论电影| 免费在线亚洲| 一区二区三区四区日本视频| 99成人在线| 日韩高清不卡在线| 蜜桃视频欧美| 99国产精品自拍| 久久都是精品| 91亚洲自偷观看高清| 香蕉精品久久| 久久免费影院| 高潮久久久久久久久久久久久久| 日本欧美韩国一区三区| 日韩精品一级二级| 亚洲一区不卡| 伊人久久亚洲| 蜜桃一区二区三区在线| 午夜av一区| 性一交一乱一区二区洋洋av| 亚洲国产一区二区三区在线播放| 91精品一区二区三区综合| 蜜臀国产一区| 国产精品网址| 激情综合网址| 亚洲另类av| 日韩成人亚洲| 国产日产一区| 亚洲欧美久久| 色爱av综合网| 国产精品精品国产一区二区| 亚洲精品进入| 日韩亚洲国产欧美| 精品一区二区三区在线观看视频 | 在线中文字幕播放| 久久精品国产亚洲夜色av网站| 老司机精品视频在线播放| 国产精品蜜月aⅴ在线| 狠狠久久伊人|