这里写几个关键点,具体的代码可以去我的github上查看
自动向数据库插入当地时间
-
说明书中,要求我们设计一个table,来记录交易的完整信息,其中就有交易时间
-
获取时间,然后手动插入显然是一个比较麻烦的做法,故而我们希望能让数据库直接在插入数据条的时候自动插入时间
-
方法如下
-
1
CREATE TABLE time(time TimeStamp NOT NULL DEFAULT (datetime('now','localtime')));
- 这里意思是,创建一个叫time的表,然后里面的列叫time,它的属性是Timestamp,在没有指定的情况下,自动为当地时间
-
向已经建好的table增加column
-
写代码的时候,写到最后history模块,才发现还要记录交易时的股价
- (当然啦,那不咋知道自己亏没亏
-
重新建表显然是非常麻烦的方法,直接增加列是一个比较方便的处理方式
-
方法如下
-
1
ALTER TABLE buy ADD COLUMN price NUMERIC;
- 这里,是在buy表里增加一列price的意思
-
Python
函数可以嵌套定义
- 不同于c,在Python中函数能够嵌套定义
- 譬如说在函数A中定义函数a
- 那么a只能在A中被调用
判断变量类型的一个函数
1
isinstance(arg1,arg2)
- arg1:被判断的变量
- arg2:类型名称
- 返回值
- True:arg1是arg2类型的
- False:返之
- 譬如
1
2
if isinstance(a,int):
print "a is int"
判断string类型的变量是否表达了一个整数
-
我submit的时候被卡了这个点,不能简单的归结为是否为
int
,而应当去考虑111.00
这种情况 -
我处理的想法是这样的
- step1:先确认他是一个数
- step2:把string转成float
- 这一步非常重要11.2这种string用
int()
转会报错
- 这一步非常重要11.2这种string用
- step3:比较
int()
和没有转int,如果相等,则认为是整数
-
模块代码如下
-
1 2 3 4 5 6 7 8 9 10
sharess = request.form.get("shares") for i in sharess: if i not in ['0','1','2','3','4','5','6','7','8','9','.']: return apology("invalid shares",400) if float(sharess) != int(float(sharess)): return apology("invalid shares",400) sharess = int(float(sharess))
-