这是我参与11月更文挑战的第5天。
一、前情回顾
在上一篇,我非常详细的给大家介绍了云服务器基本配置以及如何使用,并介绍了部分常用Linux指令,最后带大家一起部署了一个项目到服务器上。
不过由于阿里云服务器赠送查询项目源码没法直接给大家,所以本文将带大家用Python快速搭建一个web项目:个人简历。
注: 本文不涉及云服务器介绍、Linux指令介绍、项目部署到服务器等相关内容,还不知道这些的请看我写的云服务器第一篇文章:先导篇跟老表学云服务器-拥有一台服务器后,我竟然这么酷?。
二、基础准备
如果想将本项目部署到服务器,必须先看:先导篇跟老表学云服务器-拥有一台服务器后,我竟然这么酷?。
项目部署须知服务器环境介绍:
- 基本环境:Python 3.6及以上都可以
- 第三方库:
pipenv:虚拟环境管理库
pywebio:web项目框架
三、开始动手动脑
3.0 项目展示
3.1 项目思路
这次只有一个页面,就是:个人简历展示页面,本质上我们可以理解为一篇博客、静态文件等,和第一篇文章中一样,我们还是采用md来写,为什么我这么喜欢markdown:
- 更快的自定义内容格式
- 语法简单,写多了你会觉得他们就是一体的
- 移植性更强,只要在支持markdown的地方,你把你的内容复制过去,格式永远不会变(除非自己设置了css样式)
pywebio模块提供了渲染markdown语句的函数put_markdown,但是并没有提供直接渲染markdown文件的功能,一个个人简历md模板的内容就有72行了,要是直接作为参数传入函数,看代码的人得爆炸~(太乱了!)
所以我采用的方式是读取本地md文件成为字符串后传入put_markdown中进行渲染,这样代码看起来就会更可以维护、美观。
后端框架利用pywebio的好处,我们只用写好后端代码,该框架会帮我们渲染好前端显示页面,让编写者能快速搭建web项目,简直不要太nice~
3.2 找一个Markdown简历模板
这个其实很简单,直接浏览器搜索即可,你会发现第一个就是一个GitHub项目。
点开后,发现很符合我的期望,那么,我们就开始吧~
文末加餐: Git相关操作。
3.3 代码详解
整个项目只有10行,我们就能渲染出一个很不错的个人简历页面,太香了。
1)导入相关包<br>
2行代码,其实只用到了pywebio这一个包,因为这个项目只涉及输出,所以只用导入pywebio.output中相关函数即可,另外导入了session(修改渲染相关设置)和start_server(启动服务)。pywebio import session, start_server
from pywebio.output import put_markdown 2)主页面函数<br>
6行代码,定义了一个my_resume函数:
3)启动服务<br>
2行代码,作为程序主入口,启动服务。
3.4 加餐:Git相关操作
直接浏览器访问:https://github.com/new 进入github项目新建页面,输入项目名称和其他相关信息,点击Create repository即可。
创建成功后,获取项目的克隆地址,有很多模式,一般选https或者ssh都行,后面本地项目上传要用到。
在进行下面操作前,你需要确保你已经安装了git,没有安装git的,可以直接官网下载安装。
在本地项目目录下,打开终端,确保是在项目目录下了,比如截图中我在项目目录resumeblog下,在终端输入git init,初始化一下项目,这样系统就能识别这是一个git仓库了。
然后输入git add .将文件内所有文件添加到缓存区,然后利用git commit进行提交,还有一步git push就大功告成啦。
但是在git push前需要告诉git将项目push到哪个仓库,执行git remote add origin即可。remote add origin git@github.com:你的用户名称/仓库名称.git 最后执行git push操作即可完成。push -u origin master
如果报类似下面的错误,直接强制提交就行git push origin +master。
回到github,刷新项目页面就会发现文件都上传好啦~
四、下期预告
如果你还完全不了解服务器和Linux相关知识,推荐你看这篇文章
后面就正式开始系统的云服务器学习教程更新啦(应该也不系统,就是我想到哪里、觉得哪里有必要、可以讲讲,我就分享出来,等整个系列更新完成应该就可以很系统了)
这个过程也希望大家多多支持,多多反馈,互相鞭策~
本文所有相关源码,大家可以直接前往github下载,本项目源码地址:https://github.com/XksA-me/ResumeBlog
下期见,我是爱猫爱技术的老表,如果觉得本文对你学习有所帮助,欢迎点赞、评论、关注我!</div>
<div id="asideoffset"></div>
|