Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式
Django自帶有個強大的后天管理系統(tǒng),接下來我就給大家介紹一下x的admin一些強大的操作及后臺美化。
首先給大家介紹一些xadmin的注冊創(chuàng)建,首先下載官方xadmin插件包放到對應(yīng)的第三方apps_extra文件夾中

接下來就是在setting中注冊xadmin和crispy_forms到INSTALLED_APPS,接下來就是在我們的urls.py文件中配置路由
import xadmin urlpatterns = [ """ url(r'^xadmin/', xadmin.site.urls) """ ]

接下來就是在操作控制臺中輸入命令創(chuàng)建超級管理員賬號,命令是python manage.py createsupperuser

根據(jù)提示輸入相應(yīng)的賬號,郵箱和用戶名,記得在登錄xadmin后臺之前一定 遷移同步,將xadmin對應(yīng)的表遷到mysql數(shù)據(jù)庫中
接下來就是跑起我們的項目,在對應(yīng)的url網(wǎng)址后面后面加入/xadmin,登錄我們的管理后臺。

接下就是在每個app中新建adminx文件,將應(yīng)對的models注冊到xadmin中
import xadmin from .models import Goods class GoodCategoryBrandAdmin(object): fields=['category','name','image','desc','add_time'] #詳情頁字段的順序及是否顯示配置,不寫的話默認顯示全部字段 list_display=['name','desc','add_time'] #列表顯示字段的配置 search_fileds=['name'] #搜索框搜索內(nèi)容配置 list_per_page=10 #列表顯示分頁的配置,每頁顯示數(shù)據(jù)多少 list_filter=['name'] #過濾器配置 xadmin.site.register(Goods,GoodCategoryBrandAdmin) #將Goods注冊到xadmin后臺
接下來就是把app中的每個models的類注冊到xadmin后臺中,下圖就我全部注冊完成之后顯示出來的效果

起始后臺的名稱是django_xadmin的,大家一定想替換成對應(yīng)的自己后臺名稱,接下來就是替換后臺名稱和標注以及導航欄伸縮效果的
from xadmin import views class GlobalSettings(object): site_title = "硅谷商城后臺管理系統(tǒng)" # 系統(tǒng)名稱 site_footer = "版權(quán)所有@硅谷商城" # 底部版權(quán)欄 menu_style = "accordion" # 將菜單欄收起來 xadmin.site.register(views.CommAdminView,GlobalSettings)
將此代碼寫到任意一個app中的adminx.py文件中,效果就能顯示出來

在django-xadmin還支持對的的后臺主題的更換,設(shè)置也是非常簡單,如果我們想把背景的灰黑色替換成藍色或者綠色的等
,就只要接下來的幾步操作
class BaseSetting(object): 設(shè)置主題功能 enable_themes = True use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting)
接下來我們就能對xadmin后臺的主題進行修改了,在初始各功能模塊默認是一個小圓圈,我們可以通過font-awesome設(shè)置我們想要的功能模塊圖標,下圖就是我設(shè)置完成的各功能模塊的圖標

首先我們先找到設(shè)置圖片的代碼,
model_icon = 'fa fa-picture-o'
這段注冊后臺圖標的代碼是在,如圖所示

接下來就是通過 http://www.fontawesome.com.cn/網(wǎng)站查找我們喜歡的圖標,這里的圖標非常全,以下就是部分官網(wǎng)圖標的截圖

如果我們想可以添加最新版的圖標,我們從官網(wǎng)上下載最新版,將下載的文件中的css和font拷貝到或替換到下圖中的標注紅色文件夾中

接下來就就是將model_icon = 'fa fa-picture-o'中的內(nèi)容替換成下圖中的紅色標注的css樣式

model_icon = 'fa fa-address-card'添加到相對性的adminx.py中對應(yīng)的類中
class GoodCategoryBrandAdmin(object): """ model_icon = 'fa fa-address-card' """
設(shè)置完成后我們就能在后臺中看到相對應(yīng)model的圖標就能出現(xiàn),如果我們后臺數(shù)據(jù)導入以前第三方提供的數(shù)據(jù)或一些編寫好的測試的json格式數(shù)據(jù),我們就可以通過以下方式整體導入數(shù)據(jù),首先將原始數(shù)據(jù)拷貝到相對應(yīng)文件夾下

接下來在在和data同級目錄創(chuàng)建import_category.py文件,在py文件寫入函數(shù)
import os
import sys
#導入包
filename=os.path.realpath(__file__)
#對應(yīng)文件的名字
dirname=os.path.dirname(filename)
#對應(yīng)文件夾的名字
sys.path.insert(0,dirname)
#將文件夾插入
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Atigugushop.settings")
import django
django.setup()
from db_utils.data.category_data import row_data
#導入原始數(shù)據(jù)
from goods.models import GoodsCategory
#導入models中的類
for item in row_data:
#便利數(shù)據(jù)
instanc1=GoodsCategory()
#實例化類
instanc1.name=item['name']
#將遍歷的數(shù)據(jù)添加到models中的字段中
instanc1.code=item['code']
instanc1.category_type=1
#標注類別為一級目錄
instanc1.save()
#將數(shù)據(jù)保存數(shù)據(jù)庫
for item2 in item['sub_categorys']:
instanc2 = GoodsCategory()
instanc2.name = item2['name']
instanc2.code = item2['code']
# 指向父級目錄
instanc2.parent_category=instanc1
instanc2.category_type=2
instanc2.save()
for item3 in item2['sub_categorys']:
instanc3 = GoodsCategory()
instanc3.name = item3['name']
instanc3.code = item3['code']
instanc3.parent_category = instanc2
instanc3.category_type=3
instanc3.save()
接下來我們就run運行import_category文件,注只能運行一次,如果多次run,將多次添加數(shù)據(jù)庫了。接下來就查看數(shù)據(jù)庫中和后臺中有我們導入的數(shù)據(jù),下個import_product和上圖操作類似,下面是代碼部分
import os
import sys
filename=os.path.realpath(__file__)
dirname=os.path.dirname(filename)
sys.path.insert(0,dirname)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Atigugushop.settings")
import django
django.setup()
from db_utils.data.product_data import row_data
from goods.models import Goods,GoodsCategory,GoodsImage,GoodCategoryBrand
for item in row_data:
goods=Goods()
goods.market_price=float(item['market_price'].replace('元','').replace('¥',''))
goods.shop_price=float(item['sale_price'].replace('元','').replace('¥',''))
goods.name=item['name'] if item['name'] is not None else ''
goods.goods_desc=item['goods_desc'] if item['goods_desc'] is not None else ''
goods.goods_brief=item['desc'] if item['desc'] is not None else ''
category_name=item['categorys'][-1]
categorys=GoodsCategory.objects.filter(name=category_name)
if categorys:
goods.category=categorys[0]
goods.save()
for image in item['images']:
goods_image=GoodsImage()
goods_image.image=image
goods_image.goods=goods
goods_image.save()
補充導入的文件中有的是圖片,如果想讓后臺的圖片顯示出來,還需要接下來的配置,首先需在setting中配置如圖
MEDIA_URL='/media/' # 配置xadmin顯示圖片 MEDIA_ROOT=os.path.join(BASE_DIR,'media') #將文件夾media加入到系統(tǒng)中
然后,在url中配置圖片url,這兩項配置完成后圖片就能顯示出來了
from Atigugushop.settings import MEDIA_ROOT
urlpatterns = [
url(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT})
#圖片路徑
]
上面就是xadmin 后臺的部分操作,django自帶的xadmin后臺確實很強大,用起來很方便。接下來還會繼續(xù)補充django的一些操作知識。
以上這篇Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Python報錯Valueerror: Expected 2d Array
如您所知,每種編程語言都會遇到很多錯誤,有些是在運行時,有些是在編譯時,下面我就來看看當發(fā)生錯誤 ValueError: Expected 2D array, got 1D array instead時該如何解決吧2024-01-01
pycharm安裝教程(下載安裝以及設(shè)置中文界面)
這篇文章主要給大家介紹了關(guān)于pycharm安裝教程,文中包括下載安裝以及設(shè)置中文界面,PyCharm是一款Python IDE,其帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,需要的朋友可以參考下2023-10-10
python實現(xiàn)文件+參數(shù)發(fā)送request的實例代碼
這篇文章主要介紹了python實現(xiàn)文件+參數(shù)發(fā)送request的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01

