Python
MTV与MVC+url控制器 MVC框架: · M:model.py 就是和数据库打交道用的,创建表等操作 · V:View 视图(视图函数:逻辑处理响应函数,html文件) · C:controller 控制器(请求文件路径与响应函数的映射表:urls文件里面的内容,url(路径)分发与视图函数的逻辑处理) Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示: MTV框架: · M:model.py 就是和数据库打交道用的,创建表等操作(和MVC一样) · T:templates 存放HTML文件的 · V:View 视图函数(逻辑处理) 对比: MTV比MVC少一个url分发的部分 Django 的引入: Django是基于MTV模式的框架,需要配合url控制器(路径分发)使用! Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值: · M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。 · T 代表模板 (Template):负责如何把页面展示给用户(html)。 · V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。 除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示: 一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。
阅读全文

Ready,Set,Go!

前言 推荐一本从入门到放弃的Go语言书籍《Head First Go》,这个系列的教程我相对比较喜欢,曾经Python我也是用它来入门的,书名叫《Head first Python》,建议大家可以看英文原版,难度不高,还有图文结合,非常形象。 反正只要是想学啥都可以用Head first开头,比如:设计模式也是如此。 花了快一个小时从一个国外网站下载到了它的英文版本,简直高清无码啊!!咳 咳! 趁着睡觉前翻译一段。附件放pdf文件。 翻译 早在2007年,Google的搜索引擎团队遇到了一个问题,他们要维护成百上千万行代码,在测试新的特性时,他们不得不花费一个小时的时间来生成一个可以运行的程序。不用说,这样对开发人员的生产力来说相当的不友好。 所以谷歌的工程师Robert Griesemer, Rob Pike, 和Ken Thompson描绘出该语言要实现的目标为: 快速的编译。 更少的代码。 垃圾回收机制(大家都懂的) 易于同时执行多个操作(并发) 支持多核处理器 经过几年的开发,Google发布了Go:它是一门代码编写非常高效,编译和运行速度都非常快的编程语言。该项目于2009年进行了开源,现在每个人都可以免费使用它。建议大家来学习使用,GO是真的是棒到不要不要滴!!哦嚯~~~ 如果你要写一个命令行工具,使用Go可以在Windows,MacOS,和Linux系统中创建可执行程序而不需要修改代码,如果你正在写一个WEB服务器,它能帮你并发处理多用户连接,不管你要实现什么功能,它能确保你的代码编写简单而且易于维护和扩展,简直牛逼克拉丝(简直自信心爆炸啊) 原文 Back in 2007, the search engine Google had a problem. They had to maintain programs with millions of lines of code. Before they could test new changes, they had to compile the code into a runnable form, a process which at the time took the better part of an hour. Needless to say, this was bad for developer productivity. So Google engineers Robert Griesemer, Rob Pike, and Ken Thompson sketched out some goals...
阅读全文
golang

使用golang开发一个windows下sshclient.exe

上一篇文章写了如何在Linux下开发一个sshclient命令行,本次我们回到Windows下来,因为golang是跨平台的,所以我们只需要设置下Windows下的环境变量,其它指令可不变。 一、安装golang 下载Windows安装包 原始链接:https://dl.google.com/go/go1.15.6.windows-amd64.msi 如果被墙,相关包我已经上传到附件了。双击安装,过程忽略。 二、设置环境变量 Win10下右键“此电脑”->“属性”->"高级"->"环境变量",直接上图,不解释。 添加了一个GOROOT,为安装包路径,GOPATH为项目路径 三、开始编译 将附件压缩包解压到如下路径,注意路径哦 打开传说中的cmd(Win+R),眼前一片亮眼而令人窒息的黑!! 反手就是一把命令如下: cd /d D:\go\src\go-ssh-examples-master 编译上啊! go build client.go 当前目录下出现一个client.exe,执行: 好了,现在你可以拿去其它Windows平台的CMD下愉快的玩耍了。 可以在脚本刷刷作响~~~ 附件一:go-ssh-examples-master 附件二:自行github下载
阅读全文
golang

当go get 遇上GFW时……

一、问题背景 在使用go的小伙伴肯定会发现,当我们愉快的使用go get命令想下载源码包时,发现一直卡着不动,等了半天后,一句Timeout草草结尾了,法克油? 家人们不要慌,此时goproxy给我们已经铺好了路,啥是goproxy?简而言之呢,就是打着合法牌照旗号来下载编译源码了。这还真不是我闭一只眼瞎说的,有链接为证:https://github.com/goproxy/goproxy.cn/ 原文如下: Is Goproxy China legal in China? Goproxy China is a business-supported project rather than a personal project. And it has been ICP filed in the MIIT of China (ICP license: 沪ICP备11037377号-56), which means it's fully legal in China. 好了,到底是怎么设置后就可以丝滑的下载了呢,人家文章中写得已经很全面了,就知道此刻看文章的你想偷个懒,呐,给你搬过来了 二、设置环境 macOS or Linux Open your terminal and execute $ export GO111MODULE=on $ export GOPROXY=https://goproxy.cn or $ echo "export GO111MODULE=on" >> ~/.profile $ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile $ source ~/.profile done. Windows Open your PowerShell and execute C:\> $env:GO111MODULE = "on" C:\> $env:GOPROXY = "https://goproxy.cn" 我们来下载一个网络库,它并没有可执行文件生成 $ go get github.com/davyxu/cellnet 三、go get 使用时的附加参数 另外为了方便偷懒专业户,我把go get的附加参数列表也搬过来了...
阅读全文
golang

以产品思维来写代码解决实际问题

一、需求背景 晚上下班回到家,家人提了个需求:安装一个别人通过微信发给他的app.apk到手机。心里想,这不直接点安装就完了嘛,结果发现我点击时,提示的是选择对应的应用程序打开,而且这个程序名字变成了app.apk.1,不知各位同学们是否碰到过。 二、开始解决 既然有需求,我们就要解决对不,我们可以下载一些Android管理类软件,然后通过数据线传输到手机,再进行安装,但这样太麻烦。脑海中开始飞速闪过一个解决方案:刚好我的电脑中安装有golang环境,可以利用go写一个简单的http服务器,然后将app放到该目录下,手机通过浏览器进行下载安装。二话不说,现成代码就是一顿copy,总共2行核心代码(已标红): package main import "net/http" func main() { http.Handle("/", http.FileServer(http.Dir("."))) http.ListenAndServe(":8000", nil) } 运行之 go run hello.go 三、访问浏览器下载安装 将app拷贝到代码目录下,浏览器访问之。如图,点击下载app.apk即可: 艾玛,虽然有点粗暴,代码都露出来了,但是问题解决了。
阅读全文