###以后会经常用到的思想
开发项目时,别急着写功能,先确定好用什么数据结构,确定好了,后面写起程序来会方便不少。
网络编程v3.1,13节的5:40。演示如何写代码:想到再写,代码不是从第一行写的。
网络编程v3.1,第2节,17的4:30秒用目标的方法讲如何写代码。先把能想到的写下来,推不动了,再倒着推,我目标是结婚,那倒着要让她觉得我是个靠谱的人,是爱她的,那怎么让她觉得我是爱她的呢?
看代码不从第一行看起,比如从main函数开始
写webmini框架学习项目总结:
一开始是只能访问静态的,而且网页是存在硬盘上的,那么如何根据用户在浏览器的输入,显示不同的内容,而且内容会每天都不同呢?
用在服务器里用if分开来处理静态还是动态文件,在处理静态文件时,如何处理不同的用户在浏览器的请求呢?比如输入index.html,还是输入login.html,用正则表达式来选出来。在处理动态数据时,根据用户输入的不同,在web框架中作逻辑处理。通过服务器里调用web框架里的函数,根据传的参数不同作不同处理。为什么用字典?字典可以存很多,以后做扩展用。然而服务器最后传给浏览器的头文件,是web框架传过来的
webmini框架调用数据库:
为了让框架里的逻辑处理函数能够统一,那怎么抽象呢?修饰器里的参数都用正则表达式,所有的func函数也都加上一个参数。这样实现了抽象,但也牺牲了部分资源,那些本来不用这些参数的函数也被逼加上了。
这让我想到,有些开源的东西,你是可以拿过来,自己优化下,根据自己公司的实际情况,做些优化的。
往个人中心增加关注的股票的逻辑:先判断有没有这个代号的股票,再判断是不是已经在数据库了,经过前面的两个if的关卡,最后才是可以增加的代号。
###用装饰器完成路由功能-1
用字典替代判断,代码更少,更简洁
03-关注股票是 11分40:讲解一个思想就是:浏览器请求到web服务器再到框架,再回来到服务器到浏览器。一开始你应该先做个简单的,比如print先打出来,看这条路能不能通。通了,我们再不断完善功能。
04-取消关注 11分17:讲解如何找bug,有两种方式。先猜测多种可能性,再一个个排除。
在flask中,装饰器用在路由上,请求前。
###小技巧
代码调试技巧(用print):
上次用mysql5.7之后出现一个错误,我只是复制报错信息到百度,发现搜不到解决方法。其实可以用谷歌搜索进一步缩小搜索精度。比如 除了复制报错信息,还可加上mysql5.7,还可加上我的系统是mac。
vim自动补全:ctrl+n
变量 和 数据 是分开存储的
-
数据 保存在内存中的一个位置
-
变量 中保存着数据在内存中的地址
-
变量 中 记录数据的地址,就叫做 引用
-
使用
id()
函数可以查看变量中保存数据所在的 内存地址
在 标识符 / 数据 后输入一个 .,然后按下 TAB 键,iPython 会提示该对象能够调用的 方法列表
使用内置函数 dir 传入 标识符 / 数据,可以查看对象内的 所有属性及方法,比如函数,输入test.按tab没反应。但可以dir(test)
提示 方法名 格式的方法是 Python 提供的 内置方法 / 属性,稍后会给大家介绍一些常用的 内置方法 / 属性
序号 方法名 类型 作用
01 new 方法 创建对象时,会被 自动 调用
02 init 方法 对象被初始化时,会被 自动 调用
03 del 方法 对象被从内存中销毁前,会被 自动 调用
04 str 方法 返回对象的描述信息,print 函数输出使用
提示 利用好 dir() 函数,在学习时很多内容就不需要死记硬背了
shift+control+t命令行另外开一个窗口。
如果control+c杀不死进程,那么用命令行 ps -aux找到进程杀死它。
ipython3下面打impor m 不记得。按tab。
multiprocessing.Process 不知道有哪些参数,不知道怎么传。ctrl+a到行首,加help,ctrl+e到行末,之后按q退出。
命令行里,control加a回到行首,control+e回到行末
快速跳到文件对应的行数:vim 文件名 +行数。
vim 复制文件然后编辑:
mini-web框架 05
解耦:通过外部文件的函数: