前段时间听说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搭建博客相关推荐

  1. (Ⅰ)基于Hexo+GitHub Page搭建博客,绑定域名及备份

    前言 这里引用阮一峰老师网络日志里说的,对于喜欢写博客的人,会经历三个阶段: 第一阶段,刚接触 Blog,觉得很新鲜,试着选择一个免费空间来写. 第二阶段,发现免费空间限制太多,就自己购买域名和空间, ...

  2. 令人愉快的 Nuxt3 教程 (二): 快速轻松地搭建博客

    令人愉快的 Nuxt3 教程 (二): 快速轻松地搭建博客 继 令人愉快的 Nuxt3 教程 (一): 应用的创建与配置 后,我们已经成功的创建了一个 Nuxt3 应用,同时已经添加了大量的开发配置. ...

  3. Ghost 搭建博客小记

    前言 点击 我用 Ghost 搭建的博客 查看成品示例. 早就听说 Ghost 的大名了,不过一直都是处于观望状态.主要是想等 Ghost 各方面再成熟一些,所以迟迟没有行动.最近听闻 Ghost 已 ...

  4. 树莓派wifi探针_树莓派重新开始|搭建博客、网盘、流媒体与离线下载服务

    树莓派重新开始|搭建博客.网盘.流媒体与离线下载服务 在折腾了一段时间的树莓派后,逐渐确定了自己对树莓派的使用有以下需求: 博客服务器 文件同步 流媒体服务器 离线下载 话不多说,重新开始. 准备工作 ...

  5. hexo博客本地服务器显示正常,Hexo 搭建博客 本地运行 常见报错及解决办法

    作为一名在hexo方面的新手,我在使用hexo编辑文档时遇到了很多问题,hexo generate编译的时候遇到了各种错误. 在此将这些错误及其解决方案记录下来,以便日后查证之用,同时,也可给各位在遇 ...

  6. 详解Hexo搭建博客的底层原理

    文章目录 前言 Github page Hexo 工作原理 每次部署的流程 模板引擎--Hexo怎样生成HTML 数据填充 配置文件中的数据 配置文件中数据的使用 总结 前言 在2021年初对照着攻略 ...

  7. 对系统学习与写博客的看法——学完《第一行代码》有感

    笔者如今学习android有近8个月,此时才真正地学完一本书也甚是惭愧. 在此分享一下自己大概的学习经历.(笔者在大一下就开始学android了,学的时候只有c与c++的基础,一个学期+寒假在OJ上刷 ...

  8. 使用Pelican搭建博客系统

    摘要 经过几天的折腾,用Pelican搭建的独立博客系统终于上线运行了.可以打开kamidox.com看一下效果图.由于选用了响应式网页设计的主题,所以在手机上的浏览效果也相当赞.本文介绍了Pelic ...

  9. 基于Hexo的matery主题搭建博客并深度优化

    本文转自 悟尘纪,获取更新内容可查看原文: https://www.lixl.cn/2019/092856736.html 对于有一定技术背景的同学,自己动手搭建博客网站是一个很不错的选择.选择喜欢的 ...

最新文章

  1. opencv 裁剪 java_如何在opencv java中裁剪检测到的面部图像
  2. python恶搞表情包-哈哈!我用 Python 把你的朋友变成表情包了
  3. 联想微型计算机2005款配置,2005款联想43厘米液晶显示屏,55寸液晶屏价格
  4. 稀疏性和L1正则化基础 Sparsity and Some Basics of L1 Regularization
  5. Quartz简单触发
  6. AtCoder Grand Contest 017
  7. HTML与cgi post传递与接收,CGI实例--表单GET与POST示例
  8. docker java 中文乱码_记一次ubuntu docker 镜像 java 中文乱码问题查找
  9. Perl语言程序设计_输入与输出
  10. 科沃斯扫地机器人阿尔法_科沃斯阿尔法智能清洁扫地机器人配置详解
  11. Linux之rz和sz命令用法详解
  12. webp格式怎么改png?如何将webp转换格式?
  13. 央行:推动企业征信市场高质量发展
  14. 如何提升你的面试机会?
  15. 苹果执行请求时出错_苹果执行请求时出错
  16. Uva11500-Gambler's ruin
  17. 怎么在Ubuntu手机上发送短信及拨打电话
  18. STC8H单片机I2C协议驱动OLED 的困惑
  19. 对话机器人在瓜子的实践
  20. c++ stack用法 入门必看 超详细

热门文章

  1. topcoder srm 706 div1
  2. windows7 下的日期没有internet时间的选项卡
  3. 调用其他脚本上方法的方法
  4. Ember.js 入门指南——定义模型
  5. Http代理程序,基于hash缓存实现
  6. Swift入门篇-基本类型(1)
  7. C#的基础琐碎总结-----委托
  8. X86虚拟化之三种服务器虚拟化战略架构
  9. 兼容低版本迅雷的js调用
  10. Introduction to random forests