在基本的 webpy 博客中使用日期时间或时间戳
Using datetime or timestamp with basic webpy blog
我一直在关注这个使用 Webpy 的基本博客设置:
我的一切都完全一样,所以我认为我不需要 post 我的代码,但是我使用的是 Psql,因此我不得不对我的 model.py 进行一些更改如下:
import web
import datetime
db = web.database(dbn="postgres", db='basic_blog', user='my_name')
def get_posts():
return db.select('entries', order='id DESC')
def get_post(id):
try:
return db.select('entries', where='id=$id', vars=locals())[0]
except IndexError:
return None
def new_post(title, text):
db.insert('entries', title=title, content=text, posted_on=timestamp)
def del_post(id):
db.insert('entries', where='id=$id', vars=locals())
def update_post(id, title, text):
db.update('entries', where='id=$id', vars=locals(),
title=title, content=text)
当我创建模式时,我无法使用 DATETIME,因为它似乎不在 psql 中,所以我改用 TIMESTAMP,但是我不确定如何让它在 model.py文件或者如果我仍然需要导入日期时间。
当我像上面那样尝试 运行 并转到本地主机中的 /new 时,我收到此错误消息:
global name 'timestamp' is not defined
我已经尝试将 psql 模式中的类型更改为 'date',但仍然遇到同样的问题并且不确定还能做什么。
您参数中的时间戳是您需要定义的变量。
def new_post(title, text):
db.insert('entries', title=title, content=text, posted_on=timestamp)
所以改为:
import datetime
您可以:
import time
并在您的 new_post 函数中,在函数被调用时生成一个新的时间戳:
def new_post(title, text):
timestamp = time.time() # define the variable: timestamp
db.insert('entries', title=title, content=text, posted_on=timestamp)
注意:time.time()
return一个可以表示毫秒的float
对象,但如果你不关心毫秒,你可以用int(time.time())
代替。
我一直在关注这个使用 Webpy 的基本博客设置:
我的一切都完全一样,所以我认为我不需要 post 我的代码,但是我使用的是 Psql,因此我不得不对我的 model.py 进行一些更改如下:
import web
import datetime
db = web.database(dbn="postgres", db='basic_blog', user='my_name')
def get_posts():
return db.select('entries', order='id DESC')
def get_post(id):
try:
return db.select('entries', where='id=$id', vars=locals())[0]
except IndexError:
return None
def new_post(title, text):
db.insert('entries', title=title, content=text, posted_on=timestamp)
def del_post(id):
db.insert('entries', where='id=$id', vars=locals())
def update_post(id, title, text):
db.update('entries', where='id=$id', vars=locals(),
title=title, content=text)
当我创建模式时,我无法使用 DATETIME,因为它似乎不在 psql 中,所以我改用 TIMESTAMP,但是我不确定如何让它在 model.py文件或者如果我仍然需要导入日期时间。
当我像上面那样尝试 运行 并转到本地主机中的 /new 时,我收到此错误消息:
global name 'timestamp' is not defined
我已经尝试将 psql 模式中的类型更改为 'date',但仍然遇到同样的问题并且不确定还能做什么。
您参数中的时间戳是您需要定义的变量。
def new_post(title, text):
db.insert('entries', title=title, content=text, posted_on=timestamp)
所以改为:
import datetime
您可以:
import time
并在您的 new_post 函数中,在函数被调用时生成一个新的时间戳:
def new_post(title, text):
timestamp = time.time() # define the variable: timestamp
db.insert('entries', title=title, content=text, posted_on=timestamp)
注意:time.time()
return一个可以表示毫秒的float
对象,但如果你不关心毫秒,你可以用int(time.time())
代替。