我創建了具有帶時區dateTime的列的表。 在我model.py:不正確的時區打入db
DATABASE=> \d messages
Table "public.messages"
Column | Type | Modifiers
-----------+-----------------------+-----------------------------------------------------------
msg_id | integer | not null default nextval('messages_msg_id_seq'::regclass)
fullName | character varying(60) |
message | character varying |
email | character varying |
visitorId | character varying(10) |
done | boolean |
pub_date | time with time zone |
不管時區似乎什麼時區/日期時間我使用:
db = SQLAlchemy(app)
class Messages(db.Model):
__tablename__ = 'messages'
msgId = db.Column('msg_id', db.Integer, primary_key=True)
fullName = db.Column(db.String(60))
message = db.Column(db.String)
email = db.Column(db.String, unique=True)
visitorId = db.Column(db.String(10))
done = db.Column(db.Boolean)
pub_date = db.Column(types.Time(timezone=True))
def __init__(self, fullName, email, message, visitorId, submitTime):
self.fullName = fullName
self.email = email
self.message = message
self.visitorId = visitorId
self.done = False
self.pub_date = submitTime
而且我一直在使用db.create_all()
上heroku pg:psql
,下面導致創建的表衝擊+00
這是UTC。
4 | ciasto | testing | | 9IQVW1K6W | f | 15:48:31.784704+00
爲什麼會發生這種情況?
我路過的時候爲使用應該從下面經過正確dtWithZone
PostgreSQL的表信息下面路由功能pub_date
@app.route('/newmsg', methods=['GET', 'POST'])
def newmsg():
form = _appforms.MessagingForm()
if form.validate_on_submit():
name = request.form['fullName']
ip = request.access_route[0] # gives ip address of the visitor
unique_visitor_id = request.cookies.get("unique_visitor")
data = _utils.getJsonFromURL("http://ip-api.com/json/{}".format(ip))
tz = "Asia/Kolkata"
if data["status"] == "success":
tz = data["timezone"]
flash("Your IP is {} and you are visiting this site from {} timezone.".format(ip, tz))
dtWithZone = datetime.datetime.now(pytz.timezone(tz))
msg = Messages(name, request.form['email'], request.form['message'], unique_visitor_id, dtWithZone)
_db.session.add(msg)
_db.session.commit()
msg = "Thank you, {}".format(name)
return render_template('thankyou.html', form=form, msg=msg)
return render_template('newMessage.html', form=form, title=" | Messaging", msg="Write your message")
但是這是我的本地計算機上正常工作,看着表條目我可以看到:
8 | tester | local teasing | | NV33A1L66 | f | 21:09:24.804903+05:30
不是MySQL的。已移除標記。 –