我們都知道無論在測試app還是web頁面的時候,都會有一個管理后台去配置這些應用展示的內容,那么我們的Django當然也不例外,今天來認識下Django管理后台
admin管理后台
Django管理后台不僅僅只可以配置應用前端,也可以對數據進行增刪改查,最主要的是免費的~
默認設置
Django默認是沒有管理后台的,這個需要自己創建,但是我們在創建前,需要在settings.py文件的INSTALLED_APPS中配置admin,當然Django這個也是默認給我們配置好的
# Application definition INSTALLED_APPS = [ 'django.contrib.admin', # 管理站點 'django.contrib.auth', # 認證系統 'django.contrib.contenttypes', # 用於內容類型的框架 'django.contrib.sessions', # 會話框架 'django.contrib.messages', # 消息框架 'django.contrib.staticfiles', # 管理靜態文件框架 'Anjing', # Anjing應用
]
並且url.py文件中也會默認創建admin的訪問地址
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]
創建管理后台
1、通過輸入一下命令來創建admin站點用戶
# 創建admin管理后台 python manage.py createsuperuser
首先輸入賬號名:admin,然后郵箱:821006052@qq.com,再輸入密碼qweasdzxc,再次確認密碼qweasdzxc,注意密碼這里是看不到的直接輸入即可(有時候密碼太過於簡單,但是我們也可以強制確認)
創建完成后,我們直接啟動Django服務,打開瀏覽器進入管理員地址:http://127.0.0.1:8000/admin
輸入我們剛才創建好的賬號密碼。點擊log in 然后就登錄成功了
修改admin密碼
如果管理員的密碼忘記了怎么辦?怎么去修改呢?
方法一:執行以下命令進行操作修改
# 修改管理后台密碼 # admin 表示用戶名 python manage.py changepassword admin
按照指示完成修改密碼(這里修改太簡單的好像沒辦法通過~~)
方法二:
通過終端進入到shell命令中,輸入以下命令
python manage.py shell
from django.contrib.auth.models import User u = User.objects.get(username='admin') # 賬號名 u.set_password('test1234') # 新密碼 u.save()
管理后台顯示中文
這里我們會發現管理后台都是英文,我想大多數都會感覺看着不舒服,既然是我們自己的后台,有沒有辦法設置成中文呢?Django這么強大,肯定有了,我們只需要修改sttings.py配置文件中找到以下代碼
其中LANGUAGE_CODE 表示是語言,TIME_ZONE 表示的是時區
# Internationalization # https://docs.djangoproject.com/en/2.2/topics/i18n/ LANGUAGE_CODE = 'en-us' # 語言 TIME_ZONE = 'UTC' # 時區 USE_I18N = True USE_L10N = True USE_TZ = True
我們只需要更改上面兩條數據,就可以了
# Internationalization # https://docs.djangoproject.com/en/2.2/topics/i18n/ # LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'zh-Hans' # 語言 # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Shanghai' # 時區
更改完成后,我們重新進入到管理后台中查看,發現已經更改成功了
如果在設置過程中出現報錯: You have provided a value for the LANGUAGE_CODE setting that is not in the LANGUAGES setting
如果沒有遇到的請跳過繼續看
這個報錯時在Django3的版本后,如果設置完sttings.py中的LANGUAGE_CODE 和 TIME_ZONE后,啟動Django就會報出以上錯誤
解決方法:
# 需要在sttings.py中增加LANGUAGES配置 from django.utils.translation import gettext_lazy as _ LANGUAGES = [ ('zh-Hans', _('Chinese')), ] LANGUAGE_CODE = 'zh-Hans'
修改完成后,再次啟動Django就會發現問題已經解決了
后台顯示登錄數據
前面安靜寫了一個登錄頁面,只要登錄后數據信息都會保存在數據庫中,這里我想把登錄的數據展現到后台管理中。需要在admin.py文件中進行把表名導入即可
文件:admin.py
from django.contrib import admin from Anjing import models # Register your models here. # 導入數據庫 admin.site.register(models.User)
文件:model.py from django.db import models # Create your models here. from django.db import models class User(models.Model): username = models.CharField(max_length=32) password = models.CharField(max_length=32)
添加完成后,重新刷新下頁面,就可以了(來個動圖體會下~~)
如果不確定數據是否添加過來,可以直接打開數據庫查看是否顯示完成,這里我們可以看到數據是一致的
安靜好久沒用學習了。最近在家辦公事情比較多,后面會繼續每天學習2小時。
如果感覺安靜寫的對您有所幫助,點個關注,持續更新~~哪里有寫錯的地方,或者不懂的地方,可以下方留言,看到后第一時間回復~~
這個報錯時在Django3的版本后,如果設置完sttings.py中的 LANGUAGE_CODE 和 TIME_ZONE 后,啟動Django就會報出以上錯誤