前面介绍了通过tomcat+mysql以及apache+mysql,然后在网上搜索一些开源的网站程序源代码,学习如何搭建web服务。另外也通过nginx、keepalived、lvs、mycat等软件,对网站做高可用/负载均衡。
上述关注的内容,更多是运维工程师的工作。开发人员将代码提交给测试人员,测试人员测试通过后,开发将最后要发布的程序与部署手册给到运维,运维负责在生产环境进行版本发布。
运维仅仅需要知道如何新建虚拟机,安装操作系统,配置网络,安装web+数据库等中间件,以及代码放在哪个目录,如何启停服务即可。
但是上述的知识无论学习到有多么深入,操作有多么熟练,我们也无法构建出一个满足我们需求的网站。只能到处找开源程序,有就偷过来修改一下凑合着用,没有就拉倒,这样是非常可悲的事情。
在当下,DevOps的概念盛行,努力让开发人员使用Jenkins等流水线工具+k8s+docker技术,一键创建生产环境容器部署代码,踢走运维人员;运维人员逐步转型开发运维,自己开发运维工具,提升运维效率,踢走开发人员。
所以我们也应该学习一下写代码,了解如何开发出我们需要的网站,然后再结合前面的部署,全线条的打通,成为真正的全栈工程师。
而由于python语法简单,容易掌握,第三方库丰富,为此,接下来将介绍python,并且学习django框架,构建一个属于我们的网站。
1、python安装
python有python3与python2,语法稍微有些不同。而由于python2将于2020弃用,因此理论上应该学习python3为优,建议优先选择python3,除了安装教程(基本没有差别),本教程后面的代码都基于python3。
1.1下载

1.2安装




环境变量(系统变量)添加

打开cmd输入python测试是否安装与设置环境变量成功。

按ctrl+z退出,然后输入pip -V查看pip是否安装成功。

2、Django安装
打开cmd,输入以下命令,自动安装完成。最好指定版本安装,因为默认安装可能会安装了Django3.0的版本,使用上面有些不同,本教程还是基于Django1.11.X编写的。

3、安装Pycharm
pycharm是个IDE编辑工具,有题词,高亮显示关键词等功能,不是必须安装项,但是安装了之后会更加高效。
pycharm有社区版(免费),如果安装professional版本,需要付费或者XX(不可描述)。建议最好安装professional版本,因为professional版本可以选择一键创建django等工程,并且会自动帮忙填写了很多预配置,包括高亮显示关键词,tab补全命令等,而这些都是社区版没有的,开发效率会极大提高。

安装完后重启,即可。
4、安装VC Build Tooles(Python2不需要,Python3需要)
python3需要安装VC Build Tools,下载地址:(官方最新仅提供2019版本下载)
python3必须安装,否则后面pip install 其他第三方库会报错,python2不需要。

下载后默认安装,然后重启。
5、启动网站服务
打开pycharm,创建项目,直接选择创建django项目。
(该功能只有专业版才能直接创建django项目,如果是社区版,请创建完项目后,cmd进入目录,然后“django-admin startproject 项目名”进行创建。所以说,最好还是安装professional版)

创建工程的同时,需要创建虚拟环境(Virtualenv),这是为了给每个工程一个独立的环境,可以安装不同的第三方组件,例如pymysql,pillow等。
为什么要每个工程一个独立的环境呢?因为每个项目可能方向都不一样(例如视频网站需要视频方面的第三方组件,数据分析的网站需要pandas等数据分析的第三方组件),如果直接使用本机环境,随着工程的增多,每个项目打包的时候就会一股脑把所有第三方组件都装上了,要很多空间与很长时间,造成了浪费,而实际上很多组件可能并不是本工程所需要的,甚至还导致了组件/版本冲突,因此每个工程需要独立的虚拟环境。
另外mysqlclient用来python连接mysql数据库,创建项目后在虚拟环境里面安装不上。
可以在开发机上面安装,然后创建工程时选择将本机的packages加入到项目。

django框架具体的文件结构,下一篇再介绍,这里先按照最简单的操作,直接运行服务。
打开底下terminal窗口,输入
系统提示服务已经运行。

打开浏览器,输入127.0.0.1:8000查看,发现web服务已经起来了,能够正常访问django的默认页面。注意此时web只能在服务器里面访问。

如果需要外部可以访问,命令修改为
此时就可以在开发机以外,通过访问开发机IP:8000进行访问了。