python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)
不得不说python的中文cms建站教程实在是太少了,直接用Django/Flask这样的框架从头开始写又实在是有点麻烦,自己摸索着写一点使用Wagtail建站的方法,仅供参考。Wagtail是一款基于Django框架的CMS建站工具,可以为你的网站提供一个比较舒服的后台管理界面,并且支持自定义很多内容。
前期包括环境搭建之类的准备工作在这里:python cms建站教程:Wagtail建站(一、安装与基本使用)_plexming的博客-CSDN博客
更换主页
上一期我们完成了安装配置,此时我们应该已经可以看到Wagtail的示例界面了:
现在我们试着把默认主页换成我们自己的主页:
回到项目目录,我们可以看到在创建项目时Wagtail已经为我们自动创建了home文件夹,这里就是默认的主页app所在地,其中的models.py就是我们为主页添加各种组件的地方。
static和templates文件夹则分别存放网站用到的静态文件和html模板,这里需要注意,在有settings的mysite目录下也有static和templates文件夹,而且mysite目录下的这两文件夹优先级是最高的,也就是说如果你想把整个项目的前端文件汇总到一起的话,就得放在和settings文件夹同一目录下的static和templates文件夹里。
这里为了方便管理,我们在mysite/templates目录下新建一个home文件夹,在里面新建一个index.html作为我们后续的新主页:
然后来到home app下的models.py,把HomePage类下面的pass删掉,开始写代码:
先把模板路径添加进去:
# 定义主页模型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:
在页面中可以看到我们刚刚添加的富文本编辑区:
我们可以自己在后台输入信息,方便管理,当然我们也可以为Body变量取给别名:
body.verbose_name = '内容'
这样在后台就可以以易于用户理解的名字显示了:
同样的我们可以添加其他常用的组件:
# 添加简短文本
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'),]
后台看到就是这样的效果:
将组件插入html模板
现在虽然我们可以在后台看到这些区域,但我们的主界面上依然空空如也,那是因为我们的index.html里还什么都没写,现在我们开始编辑index.html:
首先把基础模板以及一些Wagtail需要用到的东西导入进去:
{% extends "base.html" %}
{% load wagtailcore_tags wagtailimages_tags%}
{% load static %}
{% block content %}{% endblock %}
这为我们提供了一个基础的框架,这时候我们可以看到网站标题已经显示出来了:
然后后台随便输点内容:
往html中插入,形如{{ self.字段名 }}:
{% block content %}
<!-- 插入富文本区域--><p>{{ self.body|richtext }}</p>
<!--插入字符串--><p>{{ self.phone_number }}</p>
{% endblock %}
可以看到显示在了页面上:
当然也可以插到div里或者随便什么代码里,前端的东西这里不多讲了。
插入图片也差不多,后台上传图片:
插入:
{% image self.logo fill-60x60 as img %}
<img src="{{ img.url }}" alt="{{ img.alt }}">
效果如下:‘
以上就是Wagtail自定义界面的基本操作方法,接下来可能还会写一篇介绍怎么创建多个页面和网页设计相关的东西。
python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)相关推荐
- zblog php建站教程_zblogphp视频站主题使用详细教程
天兴工作室:zblogphp视频站主题(可发布电影.电视剧.娱乐新闻等)已经上架,由于這个主题专门针对视频站的,所以专门写了本文来详细介绍下使用此主题的方法. 主题自带seo功能:标题关键词描述的用法 ...
- python创建scrapy_Python爬虫教程-31-创建 Scrapy 爬虫框架项目
首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Scrapy 爬虫框架项目的创建0.打开[cmd] 1.进入你要使用的 Anaconda 环境1 ...
- WordPress 建站教程新手入门六主题使用 营销值得学
作者:营销值得学 WordPress较受欢迎的原因就是拥有众多的主题模板,包含有常见的博客主题/ 淘宝客主题/企业主题/CMS主题/图片主题/视频主题等等,单是 营销值得学 免费分享的WordPres ...
- 怎么建一个网站?新手建站教程
怎么建一个网站?站长网今天来分享一下建站教程. 建站也叫网站搭建,或者网站建设,网站制作.做网站.创立网站等等说法.就是指在互联网上建立一个可以访问的网站.不论是个人网站还是公司网站,要想搭建一个网站 ...
- 2021最新零基础入门—网站建站教程(新手必备)
前言 相信很多新用户会有这样的疑惑,我要做个网站,到底要使用什么产品,如何能快速完成网站建站呢?搭建网站有两种选择,一种是直接购买建站模板,另一种则是自行建站.两类建站方式对比如下: 建站方式 优势 ...
- 建站教程WordPress新手入门十友链管理
在SEO里面,一直强调的内链为王,外链为皇,友情链接就是皇,用于展示与其他网站交换的链接,可以相互导流.重不重要?自己判断!反正营销值得学一般不轻易跟人换友链,要换的也是知根知底的. 上一篇营销值得学 ...
- 新手建站教程:如何建一个网站?
如何建一个网站?零一今天来分享一下建站教程. 建站也叫网站搭建,或者网站建设,网站制作.做网站.创立网站等等说法.就是指在互联网上建立一个可以访问的网站.不论是个人网站还是公司网站,要想搭建一个网站, ...
- 零基础入门—网站建站教程(新手必备)
前言 相信很多新用户会有这样的疑惑,我要做个网站,到底要使用什么产品,如何能快速完成网站建站呢?搭建网站有两种选择,一种是直接购买建站模板,另一种则是自行建站.两类建站方式对比如下: 建站方式 优势 ...
- 零基础入门—网站建站教程
相信很多新用户会有这样的疑惑,我要做个网站,到底要使用什么产品,如何能快速完成网站建站呢?搭建网站有两种选择,一种是直接使用模版建站工具,另一种则是自行建站.两类建站方式对比如下: 模版建站方式优势购 ...
最新文章
- JRE、JVM和JDK
- 组合模式用于分类设计子叶与枝干时候太好用了
- 全渠道java b2b b2c o2o平台
- ubuntu14.04 LTS 搜狗输入法安装和不能输入中文的解决方法
- php中使用hash_hmac函数实现HMAC-SHA1签名算法的来龙去脉
- php-v 查看不到版本,解決php -v查看到版本於phpinfo()打印的版本不一致問題
- beeline连接hiveserver2报错:User: root is not allowed to impersonate root
- 分布式系统:一致性协议
- C语言无符号整数和有符号整数的比较
- UnRaid虚拟机添加光驱设备
- linux npm全局安装路径,NPM全局路径的设置及NRM的使用
- Python中正确显示中文和负号
- 乱炖“简书交友”数据之代码(1)
- 【2022年第一期 CANN训练营进阶班应用课】第一次大作业
- GAN性能评测:Inception Score
- 【转】我的辛酸奋斗史3/3
- curl 增加header_curl增加多个头的方法
- 企业邮箱的好处有哪些?
- 从零开始免费搭建自己的博客(一)——本地搭建hexo框架
- 懒汉模式在多线程中的问题