Re: [討論] Django菜鳥 怎麼打地基啊?
hello, 你好
你可以參考我的習慣, 1234照順序去做
以留言板來說:
startapp guestbook
1.先想models,
看一下別人網站的留言板有什麼欄位, 標題、內容...所以得出結果
#guestbook/models.py
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
author = models.ForeignKey(User)
title = models.CharField(max_length=100)
body = models.TextField()
2.處理forms
在guestbook目錄下開一個forms.py
from .models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Post
exclude = ('author',)
3.處理views
#guestbook/views.py
from .forms import PostForm
from django.shortcuts import render_to_response
from django.template import RequestContext
def post_add(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
obj = form.save(commit=False)
obj.author = request.user
obj.save()
else:
form = PostForm()
return render_to_response('guestbook/post_add.html', {
'form': form
}, context_instance=RequestContext(request))
4.最後處理template
在專案目錄開一個templates/guestbook/post_add.html檔案
或是放在guestbook下面, 像這樣guestbook/templates/guestbook/post_add.html
{% block extends "base.html" %}
{% block content %}
<form action="" method="post">
<table>
{{ form.as_table }}
</table>
<input type="submit">
</form>
{% endblock %}
專案的urls.py
urlpatterns += patterns('',
url(r'^guestbook/', include('guestbook.urls', namespace='guestbook')),
)
在guestbook的目錄下也開一個urls.py
urlpatterns = patterns('guestbook',
url(r'post_add', 'views.post_add', name='post_add'),
)
這樣你就可以在template url tag
{% url namespace:urlname %}
<a href="{% url guestbook:post_add %}">我要留言</a>
如果沒有取namespace的話建議 url的name前面建議加個prefix
如:url(r'post_add', 'views.post_add', name='guestbook_post_add')
這樣才不會跟別的app名稱衝到
建議不要直接把網址打在上面<a href="/guestbook/post_add">我要留言</a>
像是一台主機裡面掛很多網站
domain/projects/mysite1
domain/projects/mysite2
...
可能有一百多個網站
這樣你在搬移專案目錄的時後才會對到正確的網址
依我個人經驗, 想要進步的話, 建議不用買書,
不要依賴編輯器去選擇關鍵字跟屬性, 我是使用gvim,
每天都要寫, 每一行程式碼都要自己打, 用手去記憶,
寫 -> debug -> 寫 -> debug ... 一直重複下去,
然後你就會發現debug次數越來越少.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.221.178
※ 編輯: wutony76 來自: 114.36.221.178 (04/14 05:47)
→
04/14 12:03, , 1F
04/14 12:03, 1F
→
04/14 12:04, , 2F
04/14 12:04, 2F
→
04/14 12:08, , 3F
04/14 12:08, 3F
→
04/14 12:09, , 4F
04/14 12:09, 4F
→
04/14 12:33, , 5F
04/14 12:33, 5F
→
04/14 12:33, , 6F
04/14 12:33, 6F
hello, 我看原作者應該是屬於沒有接觸過python, 而是接觸django才開始學python,
我有幾位朋友也是類似這種情形, 如果一開始就要求code要漂亮架構要完美,
會讓學習者產生挫折, 很快的...他就會放棄了,
他的學習方式可能是從網路上, 可能從書上, 然後可能直接把範例複製過來,
一開始就要面對幾十行或幾百行code, 很快他就暈了, 不想學了,
所以才建議自己去打每一行code, 讓他有一種蓋房子的感覺,
一行一行打, 可能打到某一行的時候, 他就會突然想到原來寫前面那幾行是為了什麼,
慢慢寫然後慢慢想過, 他不在害怕, 不會看到code就暈倒,
然後就會整理出自己的心得, 用自己的邏輯跟架構去寫程式, 這樣他就會有所成長,
因我一個人教學經驗有限, 針對沒接觸過python甚至沒寫過程式的人,
要來學習django所會面臨的問題, 也提不出更好的教法,
就請大家多提出有沒有更好的辦法跟學習方法, 來幫助這些人入門, 感恩.
※ 編輯: wutony76 來自: 114.36.221.178 (04/15 00:04)
→
04/15 04:38, , 7F
04/15 04:38, 7F
→
04/15 04:38, , 8F
04/15 04:38, 8F
→
04/15 04:39, , 9F
04/15 04:39, 9F
→
04/15 04:39, , 10F
04/15 04:39, 10F
→
04/15 04:42, , 11F
04/15 04:42, 11F
→
04/15 04:44, , 12F
04/15 04:44, 12F
→
04/15 04:44, , 13F
04/15 04:44, 13F
→
04/15 04:44, , 14F
04/15 04:44, 14F
→
04/15 04:46, , 15F
04/15 04:46, 15F
→
04/15 04:46, , 16F
04/15 04:46, 16F
→
04/15 04:46, , 17F
04/15 04:46, 17F
→
04/15 04:47, , 18F
04/15 04:47, 18F
→
04/15 04:48, , 19F
04/15 04:48, 19F
→
04/15 04:48, , 20F
04/15 04:48, 20F
→
04/15 04:54, , 21F
04/15 04:54, 21F
→
04/15 04:55, , 22F
04/15 04:55, 22F
→
04/15 04:55, , 23F
04/15 04:55, 23F
→
04/15 04:55, , 24F
04/15 04:55, 24F
→
04/15 04:59, , 25F
04/15 04:59, 25F
→
04/15 04:59, , 26F
04/15 04:59, 26F
→
04/15 04:59, , 27F
04/15 04:59, 27F
→
04/15 04:59, , 28F
04/15 04:59, 28F
→
04/15 14:51, , 29F
04/15 14:51, 29F
Python 近期熱門文章
PTT數位生活區 即時熱門文章