Day01
课程目标
- 开发环境
- BS/CS
- MVC/MTV
- Flask
课程内容
1. 开发环境
1.1 系统介绍
[图片上传失败...(image-81dd04-1586850469103)]
windows, macOS,linux是当今主流三大操作系统,普通用户一般是选择windows或macOS, linux主要是占据服务器领域市场。
操作系统给人的感觉是:
(1)windows经济适用,档次较低;
(2)macOS高端大气上档次;
(3)Linux是极客专用,一个黑乎乎的窗口,各种花花绿绿的指令在闪烁,对着键盘噼里啪啦一通乱敲,就能窃取各种机密。
在程序员群体中,操作系统有以下的鄙视链:macOS-->linux-->windows。 不过作为一个程序员,你很有必要学会linux,如果你的程序最终是跑在线上的Linux服务器上,那么你就更应该从现在开始投入linux的怀抱中,早日从windows脱坑。至于macOS,在命令行上与linux绝大部分相同,都是类unix的操作系统。简单地说,macOS是一个比windows界面更加美观,同时又兼备linux强大命令行的操作系统. 要说macOS的缺点,那就是贵...
[图片上传失败...(image-a41c68-1586850469103)]
windows与linux的设计理念有根本性的区别:
windows:用户不知道自己想要什么,也不明白自己在做什么,更不打算为自己的行为负责。
因为windows将所有操作都隐藏起来,只给用户提供封装好的功能,用户只能在操作系统限制的范围内操作,如果是普通用户,会觉得很windows很舒服,因为不需要思考。只需要按照指示去操作。但对于开发人员而言,这种设计理念是无法接受的,一旦要做出一些超越封装好的功能之外的事情,就会出现各种难以意料的情况,而且很多情况下,这些问题是无解的。或者只能用极其蹩脚扭曲的方式去勉强处理,然后瑟瑟发抖地期待着程序能正常运行。因为一旦程序崩溃,你也会为之崩溃。在windows下作开发,那种体验就好比在陪伴一个任性的女朋友,虽然长得清秀靓丽,但喜怒无常,她开心时,彼此相安无事,她不开心时,就直接哭闹,你问她:怎么了?她也不说原因,只是一直哭。你只能试着用各种方式去哄她开心,即使这次能哄好她,并不意味着下次同样的方法能奏效。这样的相处方式,很累。不是她不好,而是彼此不适合。即使终日相伴,却依然对其一无所知。
linux:用户知道自己想要什么,也明白自己在做什么,并且会为自己的行为负责。
linux将所有操作权都交给了用户,她相信用户是理性的聪明的,忠实地执行用户的指令,向用户暴露所有的细节。用户在拥有自主权的同时也拥有了破坏力,因此普通用户根本无法驾驭,可能一个指令就把操作系统弄崩溃了。对于开发者而言,linux的开放与自由给了我们无限的可能性,我们能看到程序是如何运行的,运行报错也会有友好的提示。根据报错指引往往能将问题解决。与之相处,好比与一个成熟的女性相处,历经风雨,已经不再关注浮夸的外表,而是关注内在的涵养。刚接触时,可能会觉得她高冷,慢慢地,会发现她很善解人意,心情不好时她会跟你说是什么原因造成的,彼此商量如何解决这个问题,而不是无来由地崩溃。与之相处,会感到很舒服,彼此坦诚,无需套路,你在想什么,我都知道。我在念什么,你也明白。
总结:我选择linux的原因在于自由、舒服,简言之:爽!
1.2 环境安装
- centos7安装python3(https://www.cnblogs.com/felixwang2/p/9934460.html)
- centos7安装虚拟环境(https://www.centos.bz/2018/05/centos-7-4-安装python3及虚拟环境/)
- centos7安装mysql (https://blog.csdn.net/WYA1993/article/details/88890883)
- centos7安装redis (https://www.cnblogs.com/zuidongfeng/p/8032505.html)
- pycharm连接云服务器(https://blog.csdn.net/lin_danny/article/details/82185023)
2. BS/CS
2.1 概念:
CS = Client - Server = 客戶端 - 服务器。
例子: QQ,迅雷,快播,暴風影音,各种网络游戏等等。
BS = Browser - Server = 浏览器 - 服务器。
例子:所有的网站都是BS结构。( 知乎 / 果壳 / 微博 / 等等等等等等 )
2.2 区别:
1、开发维护成本
cs开发维护成本高于bs。因为采用cs结构时,对于不同的客户端要开发不同的程序,而且软件安装调试和升级都需要在所有客户机上进行。
bs只需要将服务器上的软件版本升级,然后从新登录就可以了。
2、客户端负载
cs客户端负载大。cs客户端不仅负责和用户的交互,收集用户信息,而且还需要通过网络向服务器发出请求。
bs把事务处理逻辑部分交给了服务器,客户端只是负责显示。
3、安全性
cs安全性高。cs适用于专人使用的系统,可以通过严格的管理派发软件。
bs使用人数多,不固定,安全性低。
4、作用范围
Client/Server是建立在局域网的基础上的。Browser/Server是建立在广域网的基础上的。
3. MVC/MTV
[图片上传失败...(image-b1e0e5-1586850469103)]
3.1 MVC概念
MVC开始是存在于桌面程序中的,M是指业务模型 model,V是指用户界面 view,C则是控制器 controler,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新
3.2 分层介绍
- Model(模型) -----封装数据的交互操作 CRUD
- View(视图) -----是用来将数据呈现给用户的 页面
- Controller(控制器) ------用来协调Model和View的关系,并对数据进行操作,筛选
3.3 MTV
[图片上传失败...(image-6f36-1586850469103)]
MTV
也叫做MVT,本质上就是MVC的变种
Model(模型) -----同MVC中Model
Template(模板) -----同MVC中View
Views(视图函数)-----同MVC中Controller
4. Flask框架
4.1 介绍
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。
Python最出名的框架要数Django,此外还有Flask、Tornado等框架。虽然Flask不是最出名的框架,但是Flask应该算是最灵活的框架之一,这也是Flask受到广大开发者喜爱的原因。
4.1.1 django和flask对比
重量级框架 django
为了方便业务程序的开发,提供了丰富的工具及其组件
轻量级框架 flask
只提供web核心功能,自由灵活,高度定制,Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能
4.2 官方文档
http://flask.pocoo.org/docs/0.12/ 英文
http://docs.jinkan.org/docs/flask/ 中文
4.3 flask流行的主要原因
1 有非常齐全的官方文档,上手非常方便
2 有非常好的扩展机制和第三方扩展环境,工作中常见的软件都会有对应的扩展,动手实现扩展
也很容易
3 社区活跃度非常高 flask的热度已经超过django好几百了
4 微型框架的形式给了开发者更大的选择空间