IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django-慕课网制作(二) -> 正文阅读

[Python知识库]Django-慕课网制作(二)

书接上回:强力Django+ 杀手级xadmin开发在线教育网站 (全新开发) 这套教程来从零开始实现搭建一个在线教育网站

第二天:

今天的任务就是就要清楚整套课程的重点了 xamin 了他是一个基于django的开发的 第三方后台管理系统

前戏部分

首先就是引用这个xadmin这个资源
然后根据里面的教程来进行一步一步的配置,在配置的过程中可能会遇到这样的一个错误

ModuleNotFoundError: No module named 'widgets'

在网上的教程教程是让你直接

pip install DjangoUedito

但是他下载的DjangoUedito 的版本跟python3不兼容,依旧会出现其他错误这里的解决方法是 在github上搜索DjangoUedito DjangoUeditor收到放到vevn中

包的问题解决了 ,接下来就是setting.py 的设置
首先是中文显示的问题

LANGUAGE_CODE = 'zh-hans' 

TIME_ZONE = 'Asia/shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False # 设置不是UTC时区

将setting中对应的设置为上面的设置。

接下来是设置后台上传文件的路径

# setting.py
# 下面用来操作添加图片跟外部文件
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname('__file__')))
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# urls
from django.conf.urls.static import static
from 项目名 import settings
urlpatterns += static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)

还有一步就是 在项目的根目录下创建一个 media文件夹,这个文件是以后后台上传的文件保存文件夹。

高潮部分

在django原生admin中我们要注册一个数据库就需要在 admin.py(新建app里面自带的)里面进行注册

而在xadmin中 他的注册步骤跟原生的差不多 只有文件名不能,这里我们需要在对应的app中创建一个adminx.py的文件 里面来注册数据库

下面是本次项目中注册的adminx

# courses
from apps.courses import models
import xadmin

class GlobalSettings(object):
    site_title='幕学管理系统'
    site_footer = '幕学管理系统'
    menu_style='accordion'

xadmin.site.register(xadmin.views.CommAdminView,GlobalSettings)

class BaseSetting(object):
    enable_themes=True
    use_bootswatch =True
xadmin.site.register(xadmin.views.BaseAdminView,BaseSetting)

# 上面两个是对xadmin的样式进行修改 他们可以放到任意一个adminx.py中
class CourseAdmin(object):
    list_display = ['name', 'teacher', 'desc', 'category', 'students', 'tag', 'degree']
    search_fields = ['name', 'teacher', 'desc', 'category', 'tag']
    list_filter = ['name', 'teacher__name', 'add_time', 'category', 'tag']
    list_editable = ['name', 'teacher', 'category', 'tag']


xadmin.site.register(models.Course, CourseAdmin)


class LessonAdmin(object):
    list_display = ['course', 'name', 'learn_times']
    search_fields = ['course', 'name']
    list_filter = ['course', 'name', 'add_time']
    list_editable = ['course', 'name']


xadmin.site.register(models.Lesson, LessonAdmin)


class VideoAdmin(object):
    list_display = ['lesson', 'name', 'learn_times']
    search_fields = ['lesson', 'name']
    list_filter = ['lesson', 'name', 'add_time']
    list_editable = ['lesson', 'name']


xadmin.site.register(models.Video, VideoAdmin)


class CourseResourceAdmin(object):
    list_display = ['course', 'name']
    search_fields = ['course', 'name']
    list_filter = ['course', 'name', 'add_time']


xadmin.site.register(models.CourseResource, CourseResourceAdmin)

# operation
from apps.operation import models
import xadmin


class CityAdmin(object):
    list_display=['name','desc']
    search_fields =['name','desc']
    list_filter = ['name','desc','add_time']
    list_editable=['name','desc']

xadmin.site.register(models.City, CityAdmin)


class CourseOrgAdmin(object):
    list_display = ['name', 'desc', 'tag', 'category', 'address', 'course_nums']
    search_fields = ['name', 'desc', 'address', 'categoryChoices']
    list_filter = ['name', 'desc', 'add_time', 'category']
    list_editable = ['name', 'desc', 'categoryChoices']


xadmin.site.register(models.CourseOrg, CourseOrgAdmin)


class TeacherAdmin(object):
    list_display = ['org','name', 'work_years', 'work_company', 'work_position']
    search_fields = ['name', 'work_company', 'org', 'work_position']
    list_filter = ['name', 'org', 'add_time', 'work_company']
    list_editable = ['org', 'name', 'work_company']


xadmin.site.register(models.Teacher, TeacherAdmin)

# organizations
import xadmin
from apps.organizations.models import *
class UserAskAdmin(object):
    list_display = ['name', 'mobile', 'course_name', 'add_time']
    search_fields = ['name', 'mobile', 'course_name']
    list_filter = ['name', 'mobile', 'course_name', 'add_time']




class UserCourseAdmin(object):
    list_display = ['user', 'course', 'add_time']
    search_fields = ['user', 'course']
    list_filter = ['user', 'course', 'add_time']




class UserMessageAdmin(object):
    list_display = ['user', 'message', 'add_time']
    search_fields = ['user', 'message' ]
    list_filter = ['user', 'message', 'add_time']


class CourseCommentsAdmin(object):
    list_display = ['user', 'course', 'comments', 'add_time']
    search_fields = ['user', 'course', 'comments']
    list_filter = ['user', 'course', 'comments', 'add_time']


class UserFavoriteAdmin(object):
    list_display = ['user', 'fav_id', 'fav_type', 'add_time']
    search_fields = ['user', 'fav_id', 'fav_type']
    list_filter = ['user', 'fav_id', 'fav_type', 'add_time']


xadmin.site.register(UserAsk, UserAskAdmin)

xadmin.site.register(UserCourse, UserCourseAdmin)
xadmin.site.register(UserMessage, UserMessageAdmin)
xadmin.site.register(CourseComments, CourseCommentsAdmin)
xadmin.site.register(UserFavorite, UserFavoriteAdmin)

这里 xadmin 就自动把user表注册到数据中我们就不用再设置一个userAdmin

这里 的Admin我们可以自定义在后台的显示等操作 里面有很多方法和参数这里我就先随便举一个列子来说一下里面基本的参数

class CityAdmin(object):
    list_display=['name','desc']# list_display 在后面首页展示的字段
    search_fields =['name','desc'] 	# search_fields 后台搜索时可以搜索的字段
    list_filter = ['name','desc','add_time']# list_filter 筛选器里面的字段
    list_editable=['name','desc']# list_editable 在首页就可以直接修改的字段

注意上面列表的字段其中如果有外键字段我们可以使用 外键名__外键表的字段 来进行查询或操作

例子

class CourseAdmin(object):
    list_display = ['name', 'teacher', 'desc', 'category', 'students', 'tag', 'degree']
    search_fields = ['name', 'teacher', 'desc', 'category', 'tag']
    list_filter = ['name', 'teacher__name', 'add_time', 'category', 'tag']
    list_editable = ['name', 'teacher', 'category', 'tag']
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:38:10  更:2021-09-22 14:38:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:51:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码