python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

这篇具有很好参考价值的文章主要介绍了python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

不得不说python的中文cms建站教程实在是太少了,直接用Django/Flask这样的框架从头开始写又实在是有点麻烦,自己摸索着写一点使用Wagtail建站的方法,仅供参考。Wagtail是一款基于Django框架的CMS建站工具,可以为你的网站提供一个比较舒服的后台管理界面,并且支持自定义很多内容。

前期包括环境搭建之类的准备工作在这里:python cms建站教程:Wagtail建站(一、安装与基本使用)_plexming的博客-CSDN博客

更换主页

上一期我们完成了安装配置,此时我们应该已经可以看到Wagtail的示例界面了:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

 现在我们试着把默认主页换成我们自己的主页:

回到项目目录,我们可以看到在创建项目时Wagtail已经为我们自动创建了home文件夹,这里就是默认的主页app所在地,其中的models.py就是我们为主页添加各种组件的地方。

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

static和templates文件夹则分别存放网站用到的静态文件和html模板,这里需要注意,在有settings的mysite目录下也有static和templates文件夹,而且mysite目录下的这两文件夹优先级是最高的,也就是说如果你想把整个项目的前端文件汇总到一起的话,就得放在和settings文件夹同一目录下的static和templates文件夹里。

这里为了方便管理,我们在mysite/templates目录下新建一个home文件夹,在里面新建一个index.html作为我们后续的新主页:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

 然后来到home app下的models.py,把HomePage类下面的pass删掉,开始写代码:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

 先把模板路径添加进去:

 # 定义主页模型
 template = "home/index.html"  # 指定模板
 max_count = 1  # 确保只有一个主页

 这时候再访问localhost就看不到Wagtail的默认页面了,应该看到一片空白,毕竟我们的网页还什么都没有。

自定义后台

当然我们可以把网上找来或者自己写的html模板放上去,不过既然用到cms我们肯定想要一个方便的后台可视化编辑功能,接下来就来实现在管理界面自定义编辑网站:

还是在刚刚的models.py,我们加入如下代码:

# 创建一个富文本编辑区域
body = RichTextField(blank=True)

# 添加编辑页面的字段面板
    content_panels = Page.content_panels + [
        FieldPanel('body'),
    ]

然后登录管理后台127.0.0.1:8000/admin:

在页面中可以看到我们刚刚添加的富文本编辑区:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

 我们可以自己在后台输入信息,方便管理,当然我们也可以为Body变量取给别名:

body.verbose_name = '内容'

这样在后台就可以以易于用户理解的名字显示了:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

 同样的我们可以添加其他常用的组件:

# 添加简短文本
phone_number = models.CharField(max_length=20, blank=False, null=True)

# 添加图片
logo = models.ForeignKey(
        Image, null=True, blank=True, on_delete=models.SET_NULL, related_name='+'
    )

然后统一用FieldPanel()方法插入到页面中就行了:

content_panels = Page.content_panels + [
        FieldPanel('body'),
        FieldPanel('phone_number'),
        FieldPanel('logo'),
    ]

后台看到就是这样的效果:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

 将组件插入html模板

现在虽然我们可以在后台看到这些区域,但我们的主界面上依然空空如也,那是因为我们的index.html里还什么都没写,现在我们开始编辑index.html:

首先把基础模板以及一些Wagtail需要用到的东西导入进去:

{% extends "base.html" %}
{% load wagtailcore_tags wagtailimages_tags%}
{% load static %}
{% block content %}

{% endblock %}

这为我们提供了一个基础的框架,这时候我们可以看到网站标题已经显示出来了:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

 然后后台随便输点内容:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

 往html中插入,形如{{ self.字段名 }}:

{% block content %}
<!--    插入富文本区域-->
    <p>{{ self.body|richtext }}</p>
<!--插入字符串-->
    <p>{{ self.phone_number }}</p>
{% endblock %}

可以看到显示在了页面上:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

 当然也可以插到div里或者随便什么代码里,前端的东西这里不多讲了。

插入图片也差不多,后台上传图片:

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

插入: 

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

{% image self.logo fill-60x60 as img %}
<img src="{{ img.url }}" alt="{{ img.alt }}">

 效果如下:‘

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

以上就是Wagtail自定义界面的基本操作方法,接下来可能还会写一篇介绍怎么创建多个页面和网页设计相关的东西。

 文章来源地址https://www.toymoban.com/news/detail-431991.html

到了这里,关于python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何部署Wagtail CMS并结合cpolar内网穿透实现远程访问管理界面

    Wagtail是一个用Python编写的开源CMS,建立在Django Web框架上。 Wagtail 是一个基于 Django 的开源内容管理系统,拥有强大的社区和商业支持。它专注于用户体验,并为设计人员和开发人员提供精确控制。 选择wagtail的原因: 它能快速实现页面的表达,对于我这种对新实现的功能想要

    2024年01月16日
    浏览(44)
  • 苹果CMS系统建站安装步骤

    苹果cms可能很多人都没有听说过,是一款用于建设视频网站的管理系统。很多人刚接触都不知道如何使用,下面就跟大家分享下如何安装苹果CMS系统建站? 1、首先,百度搜索苹果cms,进入官网下载官方程序安装包。如图: 2、接着,把程序压缩包解压,上传到服务器。如图:

    2024年02月03日
    浏览(40)
  • python实现科学计算与自定义手绘风

    目标: 1.运用科学计算库进行矩阵分析和数值运算; 2.掌握numpy库的使用。 要点:这是一个使用 numpy 和 PIL 库提取图像特征形成手绘效果的实例。 使用PIL库获取了图像的轮廓,虽然提取了轮廓,但这个轮廓缺少立体感,视觉效果不够丰满。 光线照射使立体物出现明暗变化,运

    2024年02月06日
    浏览(31)
  • 建站用帝国CMS好还是WordPress好

    随着互联网的迅猛发展,内容管理系统(CMS)在网站建设中扮演着越来越重要的角色。在众多CMS中,帝国CMS和WordPress因其强大的功能和广泛的用户基础而备受关注。本文将对这两种CMS进行详细比较,分析它们的优势与不足,以便用户能够根据自身需求做出更明智的选择。 一、帝

    2024年02月21日
    浏览(40)
  • Vue:插槽,与自定义事件

                 

    2024年02月11日
    浏览(36)
  • Python——迭代器(可迭代、可迭代对象、迭代器、遍历本质、iter函数、next函数、__iter__方法、__next__方法、自定义可迭代对象与自定义迭代器、for循环本质)

    迭代(iter) 我们经常听说过\\\"版本迭代\\\"这个词,意思是在原来版本的基础上,再提升一个版本的过程。那么我们仅仅看看\\\"迭代\\\"这个词,会发现迭代就是一个根据原来的状态决定本次状态的过程 迭代应用于Python中,迭代具体是指根据原来的数据输出(并不一定是要打印,也可

    2024年02月04日
    浏览(57)
  • tomcat与自定义类加载器

    类加载器除了用于加载类外,还可用于确定类在Java虚拟机中的唯一性。 不同类加载器加载的类在 JVM 看来是两个不同的类,因为在 JVM 中一个类的唯一标识是 类加载器+类名(包括包名)。 启动类加载器,Bootstrap ClassLoader,加载JAVA_HOMElib,或者被-Xbootclasspath参数限定的类 扩展类

    2024年02月11日
    浏览(33)
  • Winform自定义控件与自定义属性的简单使用

    Winform自定义控件和属性的学习  最近新文章:C#Winform批量获取CSV内容展示,并保存 目录 一、自定义控件的使用 1.在Winform程序中添加新建项,选择Windows窗体用户控件 2.拖拽使用自定义控件到主窗体中 注意点① : 二、自定义控件的自定义属性 1.在自定义控件中添加一个控件

    2023年04月15日
    浏览(41)
  • MPI内置类型与自定义类型

    MPI_CHAR: 字符型 MPI_UNSIGNED_CHAR: 无符号字符型 MPI_BYTE: 字节型 MPI_SHORT: 短整型 MPI_UNSIGNED_SHORT: 无符号短整型 MPI_INT: 整型 MPI_UNSIGNED: 无符号整型 MPI_LONG: 长整型 MPI_UNSIGNED_LONG: 无符号长整型 MPI_FLOAT: 单精度浮点型 MPI_DOUBLE: 双精度浮点型 MPI_LONG_DOUBLE: 长双精度浮点型 MPI_Type_contiguou

    2024年02月10日
    浏览(51)
  • “深入理解网络科学与自定义网络构建“

    1.1 什么是网络? 在计算机科学中,网络是一种将多个设备连接在一起,实现信息共享和通信的技术。网络的发展可以追溯到20世纪,最早用于军事通信。随着互联网的普及,网络变得无处不在。现代网络分层模型包括OSI模型和TCP/IP模型,每一层都有特定的功能和责任。 子网

    2024年01月19日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包