Swift-学习Perfect搭建博客
前段时间听说swift5的改变之一是ABI稳定,现在看的话,swift是值得学习的,于是想通过搭建自己的博客来学习swift,顺便了解后端和mysql,以及前端页面的一些样式.
博客传送门
博客项目放在了github,喜欢的可以点赞.
Perfect
在swift作为语言基础的前提下,选择了Perfect框架,Perfect网站上有详细的文档和用例,前期可以先参考Perfect-Blog-Mustache,这是一个非常简单的blog框架.Perfect文档详细介绍了每个功能模块的用法,需要注意的是HTTP路由,这是我们会经常用到的库
云服务器和mysql
当启动PerfectHttp服务器后,通过访问127.0.0.1:端口
,就可以看到我们设置的index.html页面,通过在HTTP路由中设置的url
我们可以访问对应的路径,得到对应的页面,这里的页面应该是一个静态页面,是固定不会变化的.我们可以在服务器中安装mysql作为数据提供,也可以在本机安装mysql.
我的服务器安装了ubuntu14.0和mysql5.7,以及swift4.2.
将项目放到github上托管,在终端使用ssh远程连接云服务器,使用git clone
拉取项目,然后swift build
,正常情况下会开启我们的http服务.
这里有点要注意的,在server的路径,我们尽量使用绝对路径,我在搭建的过程中因为路径的事绕了很多圈子
在项目中声明import PerfectMySQL
,就可以连接我们的数据库,我们可以在每次访问blog文章列表的时候都读取数据库.
同样要注意的是数据库的编码格式和字符集,不是utf8可能会导致数据库中的中文变成??
也要注意连接数据库和ubuntu的编码,不然可能在服务器中读取不到中文
nginx反向代理
在我们可以通过http://ip+端口访问到我们的页面后,我们需要的可能就是一个代替ip的域名,将域名解析为我们的ip地址,但是这样只能让域名访问默认的80端口,如果我们使用的是8181端口,就需要设置nginx反向代理
mustache页面模板
我们的页面虽然有个数据库的支持,但是还是不能按照数据库的条数完全展示,现在我们可以利用mustache模板对前端html页面进行调整,需要在项目中引用import PerfectMustache
buttons和bootstrap
web页面的样式是比较复杂的,想要美观和实用,需要的时间就很多,但是有一些大神已经帮我铺好了路,造好了轮子,例如一些常见的button,在buttons上可以快速应用到我们的页面上.
但是整个界面的布局以及在移动端上的显示,仅仅是控件还是不够的,于是我引用了bootstrap
作为全段界面的主要布局,其中的栅栏布局很实用
markdown转html的两种方案
我们在编写文章时常用markdown格式,在Perfect里也有markdown转html的库,通过引用可以非常简单的实现转换,但是在什么时候转换,大概有两种方案:
- 在列表中点击链接时,在网页请求时进行转换,这样可以不用生成对应的html文件
- 提前将所有的md转化成对应的html,生成所有的html文件
这两种方法都有各自的优缺点,选择一种就可以
简单的shell脚本
通过一些简单的shell和expect命令,我们在每次登陆是都可以不用输入麻烦的ip和密码操作,以及其他一些小操作
spawn scp -r $localFile $user@$host:$targetPathexpect "*password:"send "$password\r"interact
复制代码
参考
官网例子
Calatrava
Swift语言开发App服务端
Swift Perfect - 使用 systemd 命令服务器
使用Supervisor让你的Swift服务器项目后台运行
Swift + Perfect开发你的服务器(高级版)
Swift-学习Perfect搭建博客相关推荐
- (Ⅰ)基于Hexo+GitHub Page搭建博客,绑定域名及备份
前言 这里引用阮一峰老师网络日志里说的,对于喜欢写博客的人,会经历三个阶段: 第一阶段,刚接触 Blog,觉得很新鲜,试着选择一个免费空间来写. 第二阶段,发现免费空间限制太多,就自己购买域名和空间, ...
- 令人愉快的 Nuxt3 教程 (二): 快速轻松地搭建博客
令人愉快的 Nuxt3 教程 (二): 快速轻松地搭建博客 继 令人愉快的 Nuxt3 教程 (一): 应用的创建与配置 后,我们已经成功的创建了一个 Nuxt3 应用,同时已经添加了大量的开发配置. ...
- Ghost 搭建博客小记
前言 点击 我用 Ghost 搭建的博客 查看成品示例. 早就听说 Ghost 的大名了,不过一直都是处于观望状态.主要是想等 Ghost 各方面再成熟一些,所以迟迟没有行动.最近听闻 Ghost 已 ...
- 树莓派wifi探针_树莓派重新开始|搭建博客、网盘、流媒体与离线下载服务
树莓派重新开始|搭建博客.网盘.流媒体与离线下载服务 在折腾了一段时间的树莓派后,逐渐确定了自己对树莓派的使用有以下需求: 博客服务器 文件同步 流媒体服务器 离线下载 话不多说,重新开始. 准备工作 ...
- hexo博客本地服务器显示正常,Hexo 搭建博客 本地运行 常见报错及解决办法
作为一名在hexo方面的新手,我在使用hexo编辑文档时遇到了很多问题,hexo generate编译的时候遇到了各种错误. 在此将这些错误及其解决方案记录下来,以便日后查证之用,同时,也可给各位在遇 ...
- 详解Hexo搭建博客的底层原理
文章目录 前言 Github page Hexo 工作原理 每次部署的流程 模板引擎--Hexo怎样生成HTML 数据填充 配置文件中的数据 配置文件中数据的使用 总结 前言 在2021年初对照着攻略 ...
- 对系统学习与写博客的看法——学完《第一行代码》有感
笔者如今学习android有近8个月,此时才真正地学完一本书也甚是惭愧. 在此分享一下自己大概的学习经历.(笔者在大一下就开始学android了,学的时候只有c与c++的基础,一个学期+寒假在OJ上刷 ...
- 使用Pelican搭建博客系统
摘要 经过几天的折腾,用Pelican搭建的独立博客系统终于上线运行了.可以打开kamidox.com看一下效果图.由于选用了响应式网页设计的主题,所以在手机上的浏览效果也相当赞.本文介绍了Pelic ...
- 基于Hexo的matery主题搭建博客并深度优化
本文转自 悟尘纪,获取更新内容可查看原文: https://www.lixl.cn/2019/092856736.html 对于有一定技术背景的同学,自己动手搭建博客网站是一个很不错的选择.选择喜欢的 ...
最新文章
- opencv 裁剪 java_如何在opencv java中裁剪检测到的面部图像
- python恶搞表情包-哈哈!我用 Python 把你的朋友变成表情包了
- 联想微型计算机2005款配置,2005款联想43厘米液晶显示屏,55寸液晶屏价格
- 稀疏性和L1正则化基础 Sparsity and Some Basics of L1 Regularization
- Quartz简单触发
- AtCoder Grand Contest 017
- HTML与cgi post传递与接收,CGI实例--表单GET与POST示例
- docker java 中文乱码_记一次ubuntu docker 镜像 java 中文乱码问题查找
- Perl语言程序设计_输入与输出
- 科沃斯扫地机器人阿尔法_科沃斯阿尔法智能清洁扫地机器人配置详解
- Linux之rz和sz命令用法详解
- webp格式怎么改png?如何将webp转换格式?
- 央行:推动企业征信市场高质量发展
- 如何提升你的面试机会?
- 苹果执行请求时出错_苹果执行请求时出错
- Uva11500-Gambler's ruin
- 怎么在Ubuntu手机上发送短信及拨打电话
- STC8H单片机I2C协议驱动OLED 的困惑
- 对话机器人在瓜子的实践
- c++ stack用法 入门必看 超详细