2010-09-06 42 views
1

讀如果我從我剛保存的文件,以我一個DB「讀出」得到:Django的從數據庫

您的姓名是:(u'Mike」,)

你的生日是:(日期時間.datetime(2009,12,5,0,0))

而不是

你的名字是邁克

你的生日是在12/05/2009

我該如何做到這一點?

感謝

@丹尼爾:

同樣是你回答我的例子之前:

這是它是如何保存:

def main(request): 
    if request.method == 'POST': 
     form = UserForm(request.POST) 
     if form.is_valid(): 
      name = form.cleaned_data['name'], 
      birth_day = form.cleaned_data['birth_day'], 
      address = form.cleaned_data['address'], 
#   contact1= form.cleaned_data['id'] 
      phone_type = form.cleaned_data['phone_type'] 
      phonenumber = form.cleaned_data['phonenumber'] 
      contact = Contact(
       name = form.cleaned_data['name'], 
       birth_day = form.cleaned_data['birth_day'], 
       address = form.cleaned_data['address'], 
      ) 
      contact.save() 
      number = PhoneNumber(
#    contact1 = form.cleaned_data ['id'] 
       contact = contact, 
       phone_type = form.cleaned_data['phone_type'], 
       phonenumber = form.cleaned_data['phonenumber'], 

      ) 
      number.save() 

,這如何顯示:

output = ''' 
    <html> 
    <head> 
    <title> Your telephone number </title> 
    </head> 
    <body> 
    <h1> Your telephone number</h1> 
    <p>Your Name is: %s </p> 
    <p>Your Telephone number is : %s </p> 
    <p>Your Address is: %s </p> 
    <p>This is your %s number </p> 
    <p>Your Birthday is on: %s </p> 
    </body> 
    </html>''' %(name, phonenumber, address, phone_type, birth_day) 
    return HttpResponse(output) 
+0

顯示一些代碼!你如何保存數據?你如何加載它?你怎麼輸出它? – 2010-09-06 08:55:02

+0

你能告訴我們UserForm的聲明嗎? – dmitko 2010-09-06 09:25:26

回答

1

但是,這不是從數據庫中讀取,而是直接從表單提交。相反,請使用您剛剛保存的對象。你需要做一些額外的格式上的生日,但:

% (contact.name, number.phonenumber, contact.address, 
    number.get_phone_type_display(), 
    contact.birth_day.strftime('%d/%m/%Y')) 
+0

但也看到dmitko的答案,他有一個好點。 – 2010-09-06 09:29:52

+0

Mastertime!再次。神奇的作品!謝謝。 Django如何知道要顯示哪個聯繫人?爲什麼我不必爲Django提供一個id來知道Django需要檢索哪個數據記錄? – MacPython 2010-09-06 09:36:56

+0

您不會在此處檢索它,因爲您只是使用剛創建的相同對象。如果您在單獨的視圖中,則需要使用ORM函數以正常方式檢索它。 – 2010-09-06 09:59:49

0

你如何從數據庫中「讀出」?如果您使用庫(例如MySQLdb)連接到數據庫,執行查詢並打印輸出(例如使用fetch_row()),那麼您得到的結果是自然的。

結果將是一個元組,你將不得不提取你需要的字段。這可以使用適當的索引完成。你說:

result = fetch_row() 
print "Your Name is: %s" % result[0] 

更新

(看到更新的問題後):@丹尼爾的answer應該幫助你。

+0

有趣。但請參閱上面的代碼,瞭解我是如何做到的。謝謝! – MacPython 2010-09-06 09:07:03

1
name = form.cleaned_data['name'], 
birth_day = form.cleaned_data['birth_day'], 
address = form.cleaned_data['address'], 

我認爲你有元組,因爲逗號(,)在線路末端!刪除它們,然後再試一次:)

+0

謝謝!其實我有兩行,那裏沒有逗號,並且在每行添加逗號後都有(u'')。所以你是對的!爲什麼是這樣?逗號是做什麼的?無論如何非常有趣!謝謝 – MacPython 2010-09-06 09:40:07

+0

放入逗號意味着你正在創建一個元組 - 閱讀關於元組的東西http://docs.python.org/tutorial/datastructures.html#tuples-and-sequences – dmitko 2010-09-06 09:53:01