django datetime字段定制更新

时间:2017-07-24 11:28:29

标签: django datetime

created_at = models.DateTimeField(auto_now_add=True, auto_now=False)
updated_at = models.DateTimeField(auto_now_add=False, auto_now=True)
  

我的表格包含以下字段:

     

| id | created_at | updated_at |经度|纬度|

我手动在经度和纬度列中插入一些值,并希望每当我插入新记录时,created_date和updated_date字段都会更新。 这些记录是从Excel工作表中插入的。简单地说,我从excel获取值并使用mysqldb放入表中 我可以使用以下代码在没有django数据库的情况下执行此操作。

import MySQLdb    #For database operations
import xlrd       #For reading excel file
import time
book = xlrd.open_workbook('my_data.xlsx')  
s1 = book.sheet_by_name('prasad')         
db = MySQLdb.connect(host = 'localhost', user = 'root', passwd = 'lmtech123',
                     db = 'server_db')        
cur = db.cursor()                          
query = "insert into eyeway_devicedata(Longitude, Latitude) values(%s, %s)"
for r in range(1,s1.nrows):
    ln = str(s1.cell(r,8).value)
    lt = str(s1.cell(r,7).value)


    values = ln, lt
    cur.execute(query, values)          #insert the data into the table
    db.commit()
    time.sleep(5)    

db.close()

但我想在django数据库中加载其datetime字段工具。可能吗?请帮忙。

1 个答案:

答案 0 :(得分:0)

好吧,您所要做的就是创建模型实例,填写工作表中的数据并保存。

import xlrd       #For reading excel file
import time

from eyeway.models import DeviceData


book = xlrd.open_workbook('my_data.xlsx')  
s1 = book.sheet_by_name('prasad')     

for r in range(1,s1.nrows):
    device_data = DeviceData(Latitude=str(s1.cell(r,7).value),
                             Longitude=str(s1.cell(r,8).value))
    device_data.save()

不要忘记正确设置MySQL数据库。你需要加入 settings.py 这样的东西:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'server_db',
        'USER': 'root',
        'PASSWORD': 'lmtech123',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

我希望这是你一直在寻找的东西。