• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Django之admin

    一:配置文件(settings.py

    1、INSTALLED_APPS

    INSTALLED_APPS = [
    	'django.contrib.admin',
     	'django.contrib.auth',
    	'django.contrib.contenttypes',
     	'django.contrib.sessions',
    	'django.contrib.messages',
    	'django.contrib.staticfiles',
    	]
    

    2、在BASE_DIR目錄下創建static文件夾

    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
    	os.path.join(BASE_DIR, 'static'),
    ]
    STATIC_ROOT = os.path.join(BASE_DIR, '/static/')
    

    3、添加用戶身份認證

    # 指定Django是被用戶身份的類
    AUTHENTICATION_BACKENDS = [
     	'users.utils.UsernameMobileAuthBackend',
    ]
    

    二:路由(urls.py

    urlpatterns = [
    	path('admin/', admin.site.urls),
    	]
    

    三:users子應用下創建utils.py文件并添加以下內容

    import re
    
    from django.contrib.auth.backends import ModelBackend
    
    from .models import User
    
    def get_user_by_account(account):
    	"""
    	根據帳號獲取user對象
    	:param account: 賬號,可以是用戶名,也可以是手機號
    	:return: User對象 或者 None
     	"""
    	try:
        	if re.match('^1[3-9]\d{9}$', account):
            	# 帳號為手機號
            	user = User.objects.get(mobile=account)
        	else:
           	 	# 帳號為用戶名
            	user = User.objects.get(username=account)
    	except User.DoesNotExist:
        	return None
    	else:
        	return user
    
    
    class UsernameMobileAuthBackend(ModelBackend):
    	"""
    	自定義用戶名或手機號認證
    	"""
    
    	def authenticate(self, request, username=None, password=None, **kwargs):
        	user = get_user_by_account(username)
        	if user is not None and user.check_password(password):
            	return user
    

    四:在子應用的admin.py添加指定的Model,例:

    from django.contrib import admin
    
    from users.models import MessageModel
    
    
    admin.site.register(MessageModel)
    

    五:用以下命令收集靜態文件

    python manage.py collectstatic
    
    setting.py的以下配置決定能否收集成功
    *STATIC_ROOT = os.path.join(BASE_DIR, '/static/') #正確
    *STATIC_ROOT = os.path.join(BASE_DIR, 'static') #錯誤
    

    完成!!!!!!!!

    七:部署到服務器上需更改nginx.conf文件
    例如:
    項目文件在服務器上的 /home/www文件夾下,static文件夾在csdn/csdn/csdn下
    nginx.conf的配置如下:

    server {
    	……省略……
    	location /static {
      		root /home/www/csdn/csdn/csdn;
    		}
    	……省略……
    	}
    

    重啟nginx

    在nginx/sbin下執行以下命令
    ./nginx -s reload
    

    重啟項目(我用的是uwsgi + nginx部署的,這里重啟uwsgi.ini)

    在項目中找到uwsgi.pid執行以下命令
    uwsgi --reload uwsgi.pid
    

    在這里插入圖片描述
    成功!!!

    ***別忘記創建超級用戶
    首選創建一個新用戶,用來登錄Django管理網站,進入manage.py目錄下,使用如下命令來進行創建:

    python manage.py createsuperuser
    

    接下來輸入用戶名稱:

    Username: admin
    

    然后是輸入郵箱(QQemail等都可以):

    Email address:(輸入你的郵箱賬號)
    

    輸入密碼(輸入密碼時不會顯示出來,并且長度必須超過八位才行):

    Password:******** 
    Password(again):********
    

    當兩次密碼輸入相同且超過八位的時候,就會提示創建超級用戶成功:

    Superuser created successfully.
    

    再次運行你的服務,輸入賬號和密碼就可以成功登陸了:

    python manage.py runserver
    
    版權聲明:本文為Lovehanxiaoyan原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/Lovehanxiaoyan/article/details/90213481

    智能推薦

    Django~Admin

    admin django amdin是django提供的一個后臺管理頁面,給管理頁面提供完善的html和css,使得你在通過Model創建完數據庫表之后,就可以對數據進行增刪改查,它是django強大功能之一,它能共從數據庫中讀取數據,呈現在頁面中,進行管理。默認情況下,它的功能已經非常強大,如果你不需要復雜的功能,它已經夠用,但是有時候,一些特殊的功能還需要定制,比如搜索功能,下面這一系列文章就...

    【Django入門】——Django Admin

    文章目錄 Django Admin Django Admin 服務器后臺管理員 開始一個項目時,Django已經配置了Django Admin python manage.py createsuperuser創建后臺管理員 在admin.py文件中添加模型:...

    Django小試身手之管理頁admin使用

      高可擴展性 向后兼容 低耦合,高內聚 項目的入口:manage.py 項目的配置:test1 項目的開發:自定義應用 虛擬環境:workon,mkvirtualenv,rmvirtualenv,deactivate     pip list,pip install django的命令:django-admin startproject  &nb...

    Django基礎之模板語言、中間件和admin

    一、模版的執行 模版的創建過程,對于模版,其實就是讀取模版(其中嵌套著模版標簽),然后將 Model 中獲取的數據插入到模版中,最后將信息返回給用戶。 二、模版語言 模板中也有自己的語言,該語言可以實現數據展示 三、自定義simple_tag (1)在app(也就是項目)中創建templatetags模塊 (2)創建任意 .py 文件,如:xx.py (3)在使用自定義simple_tag的htm...

    Django:Admin,Cookie,Session

    一. Admin的配置 1.Admin基礎設置   admin是django強大功能之一,它能夠從數據庫中讀取數據,呈現在頁面中,進行管理。默認情況下,它的功能已經非常強大,如果你不需要復雜的功能,它已經夠用,但是有時候,一些特殊的功能還需要定制,比如搜索功能,下面這一系列文章就逐步深入介紹如何定制適合自己的admin應用。 <1> 在settings中設置Admin界面顯示語言 &l...

    猜你喜歡

    django admin后臺系統

    Django中默認集成了后臺數據管理頁面,通過簡單的配置就可以實現模型后臺的Web控制臺。 管理界面通常是給系統管理員使用的,用來完成數據的輸入,刪除,查詢等工作。 使用以下models來示范admin后臺系統的用法。     from django.db import models     class Publisher(models....

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡