用Python搭建一个校园维基网站(一)
时间:2022-04-25
本文章向大家介绍用Python搭建一个校园维基网站(一),主要内容包括简述、效果图、Wagtail初体验、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
專 欄
❈
treelake ,Python中文社区专栏作者
项目Github地址:
https://github.com/zr777/school-wiki
❈
简述
- 我们的目标是做一个校园维基站点,提供校园生活百科的内容服务。
- 主要需求为
- 百科的搜索
- 百科的标签分类
- 人人皆可参与编辑
- 界面简洁大方直观
- 其实有一个很好的技术选型,那就是开源的wikihow 英文、中文,它的UI简洁不失美观,单维基页面的展示很清晰,而且是基于某种markdown语言的人人可修改。不过,它是基于mediaWiki,熟悉PHP的同学可以去尝试。
- 对于Python而言,虽然没有现成的工具,但借助强大的Python开源社区,我们也可以很快地搭建起一个轻量级的校园百科网站。
-
Wagtail
是一个基于Django
的优秀CMS(内容管理系统)。有强大的Django社区做后盾,开发资源相当丰富。利用它我们可以轻松地搭建属于自己的内容发布网站。 - Wagtail的后台管理界面漂亮而且强大,有良好的权限管理系统,页面、图片和文档的管理功能以及富文本编辑功能。在文本内容搜索上可以集成elasticsearch,非常方便。
- 学习一个开源框架最好的方式就是去读它的官方文档 - wagtail。它的官方文档已经比较完善了,对新手友好,推荐阅读。
- 由于单人开发而且业务逻辑比较简单明确,没有考虑前后端分离,而是利用django模板功能,在SEO方面有一定的优势。
- 为了方便,前端样式选择了轻量的purecss框架,有现成的一些页面样式可以使用,而且比较符合个人审美。
- 此外,由于之前的内容发布使用WordPress博客系统,需要导入原来的原生HTML内容,维基页面要兼容原生html,所以目前游客的权限较低,修改后需要提交审核。markdown编辑功能暂时没有加上,不过有开源的插件,使用很方便。
效果图
移动端首页
PC端首页
标签页
搜索结果页面
PC端单维基页面
移动端单维基页面
帮助修改页面
帮助修改的富文本编辑与其他功能
Wagtail初体验
1、pip install wagtail
安装库。
2、命令行输入wagtail start mysite
开始我们的项目。
3、cd mysite
进入项目目录。
4、python manage.py migrate
数据库迁移 。
5、python manage.py createsuperuser
创建管理员。
6、python manage.py runserver
开始运行,就可以在http://127.0.0.1:8000看到你的第一个wagtail网页了。
- 数据库中间件 Sharding-JDBC 源码分析 —— SQL 解析(一)之语法解析
- phalcon-入门篇4(log日志和session缓存)
- zephir-(5)类型
- zephir-(10)内置函数
- zephir-(9)类和对象2
- 深度学习中的动手实践:在CIFAR-10上进行图像分类
- 数据库中间件 MyCAT源码分析 —— XA分布式事务
- [喵咪Golang(1)]Go语言开篇
- phalcon-进阶篇2(拦截器)
- 【死磕Java并发】—–深入分析synchronized的实现原理
- phalcon-进阶篇1(过滤与清理)
- phalcon-入门篇9(view层基础使用)
- PhalApi视频教程
- 【学术】一文搞懂自编码器及其用途(含代码示例)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python 3.7 + BeautifulSoup 简单爬虫实例
- 你还在用Jmeter的GUI模式进行性能测试吗?(二)
- Jenkins配置SSH Key下载代码
- 详解kubeadm安装k8s集群常见问题
- Python 3.7 + Django 2.2.5 Web项目搭建
- Flink集成数据湖之实时数据写入iceberg
- unittest简单应用
- 假如 Web 当初不支持动态化
- Spring Boot使用OpenAPI规范
- 图论-单源最短路径(Dijskal算法)
- Mysql系列第二十五讲 mysql如何确保数据不丢失?有几点值得我们借鉴
- 使用Jsch进行安全的文件上传及下载
- 你见过最烂的代码长什么样子?
- 集智智能课程表项目 实战指南
- ZeroLogon(CVE-2020-1472) 分析与狩猎