python 用戶賬戶1 2021-03-04

1 讓用戶輸入數(shù)據(jù)

1.1添加新主題:定義URL抛人,編寫視圖函數(shù)并編寫一個模板,導入包含表單form.py

1.用于添加主題的表單

使用ModelForm椭赋,創(chuàng)建forms.py稼病,存儲在models.py目錄

from?django?import?forms

from?.models?import?Topic

class?TopicForm(forms.ModelForm):

????class?Meta:

????????#?根據(jù)Topic創(chuàng)建表單

????????model?=?Topic

????????#?只包含字段text

????????fields?=?['text']

????????#?不為字段text生成標簽

????????labels?=?{'text':?''}


2.URL模式new_topic

添加到learning_logs/urls.py

????#將請求交給視圖函數(shù)new_topic

????path('new_topic/',views.new_topic,?name='new_topic'),


3.視圖函數(shù)new_topic()? ? 4.GET請求和POST請求

def?new_topic(request):

????'''添加新主題'''

????#?確定請求方式如果不是POST肮韧,返回空表單

????if?request.method?!=?'POST':

????????#?創(chuàng)建實例,空列表

????????form?=?TopicForm()

????else:

????????#?POST提交的數(shù)據(jù):對數(shù)據(jù)進行處理

????????#?request.POST存儲用戶輸入的數(shù)據(jù)

????????form?=?TopicForm(data=request.POST)

????????#?判斷字段是否有效

????????if?form.is_valid():

????????????form.save()

????????????#?保存后帮寻,使用redirect()將用戶瀏覽器重定向到頁面topics

????????????#?在頁面topics中將在主題列表中看到他剛輸入的主題

????????????return?redirect('learning_logs:topics')

? ? ? ? #?顯示空表單或指出表單數(shù)據(jù)無效

? ? ? ? context?=?{'form':?form}

? ? ? ? return?render(request,?'learning_logs/new_topic.html',?context)


5.模板new_topic 創(chuàng)建新模板new_topic.html

{%?extends?"learning_logs/base.html"?%}

{%?block?content?%}

????<p>Add?a?new?topic:</p>

? ? #定義一個表單乍狐,實參action告訴服務器將提交的表單數(shù)據(jù)發(fā)送到哪里

? ? #這里將它發(fā)回給視圖函數(shù)new_topic(),POST請求提交數(shù)據(jù)

????<form?action="{%?url?'learning_logs:new_topic'?%}"?method="post">

? ? ? ? #使用模板 來防止攻擊者利用表單獲得對服務器未經(jīng)授權的訪問(跨站請求偽造)

????????{%?csrf_token?%}

? ? ? ? #顯示表單as_p 以段落格式渲染所有表單元素

????????{{?form.as_p}}

? ? ? ? #提交按鈕

????????<button?name="submit">Add?topic</button>

????</form>

{%?endblock?content%}


6.鏈接到頁面new_topic

topics.html

<a?href="{%?url?'learning_logs:new_topic'?%}">Add?a?new?topic</a>



1.2添加新條目

1.用于添加新條目的表單

forms.py

from?.models?import?Topic,?Entry

~~~~~~

class?EntryForm(forms.ModelForm):

????class?Meta:

????????model?=?Entry

????????fields?=?['text']

????????labels?=?{'text':?''}

????????#小部件widget是HTML表單元素,Textarea定制字段text輸入小部件固逗,寬度設置80列

????????widgets?=?{'text':?forms.Textarea(attrs={'cols':?80})}


2.URL模式new_entry

path('new_entry/<int:topic_id>/',?views.new_entry,?name='new_entry'),

匹配時浅蚪,Django將請求和主題ID發(fā)送給函數(shù)new_entry()


3.視圖函數(shù)views.py

from?.forms?import?TopicForm,?EntryForm

def?new_entity(request,?topic_id):

????'''在特定主題中添加新條目'''

????topic?=?Topic.objects.get(id=topic_id)

????if?request.method?!=?'POST':

????????form?=?EntryForm()

????else:

????????form?=?EntryForm(data=request.POST)

????????if?form.is_valid():

????????????new_entry?=?form.save(commit=False)

????????????new_entry.topic?=?topic

????????????new_entry.save()

????????????return?redirect('learning_logs:topic',?topic_id=topic_id)

????#?顯示空表單或指出表單數(shù)據(jù)無效

????context?=?{'topic':?topic,?'form':?form}

????return?render(request,?'learning_logs/new_entry.html',?context)


4.模板new_entry

{%?extends?"learning_logs/base.html"?%}

{%?block?content?%}

????<p><a?href="{%?url?'learning_logs:topic'?topic.id?%}">{{?topic?}}</a></p>

????<p>Add?a?new?entry:</p>

????<form?action="{%?url?'learning_logs:new_entry'?topic.id?%}"?method="post">

????????{%?csrf_token?%}

????????{{?form.as_p}}

????????<button?name="submit">Add?entry</button>

????</form>

{%?endblock?content?%}


5.鏈接到頁面new_entry

topic.html

????<p>Topic:{{?topic?}}</p>

????<p>Entries:</p>

????<p>

????????<a?href="{%?url?'learning_logs:new_entry'?topic.id?%}">Add?new?entry</a>

????</p>


增加事件頁面


1.3編輯條目

1.URL模式edit_entry

urls.py
????path('edit_entry/<int:entry_id>/',?views.edit_entry,?name='edit_entry'),


2.視圖函數(shù)edit_entry()

views.py

from?.models?import?Topic,?Entry??#?導入所需數(shù)據(jù)相關聯(lián)的模型

def?edit_entry(request,?entry_id):

????'''編輯現(xiàn)有條目'''

????entry?=?Entry.objects.get(id=entry_id)

????topic?=?entry.topic

????if?request.method?!=?'POST':

????????form?=?EntryForm(instance=entry)

????else:

????????form?=?EntryForm(instance=entry,?data=request.POST)

????????if?form.is_valid():

????????????form.save()

????????????return?redirect('learning_logs:topic',?topic_id=topic_id)

????context?=?{'entry':?entry,?'topic':?topic,?'form':?form}

????return?render(request,?'learning_logs/edit_entry.html',?context)


3.模板edit_entry

{%?extends?"learning_logs/base.html"?%}

{%?block?content?%}

????<p><a?href="{%?url?'learning_logs:topic'?topic.id?%}">{{?topic?}}</a></p>

????<p>Edit?entry:</p>

????<form?action="{%?url?'learning_logs:edit_entry'?topic.id?%}"?method="post">

????????{%?csrf_token?%}

????????{{?form.as_p}}

????????<button?name="submit">Save?changes</button>

????</form>

{%?endblock?content?%}


4.鏈接到頁面edit_entry

topic.html

<p>{{?entry.date_added|date:'M?d,?Y?H:i'?}}</p>

????????????<p>{{?entry.text|linebreaks?}}</p>

????????????<p>

????????????????<a?href="{%?url?'learning_logs:edit_entry'?entry.id?%}">Edit?entry</a>

????????????</p>

放在日期和文本后面


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末藕帜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子惜傲,更是在濱河造成了極大的恐慌洽故,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盗誊,死亡現(xiàn)場離奇詭異时甚,居然都是意外死亡,警方通過查閱死者的電腦和手機哈踱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門撞秋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嚣鄙,你說我怎么就攤上這事吻贿。” “怎么了哑子?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵舅列,是天一觀的道長。 經(jīng)常有香客問我卧蜓,道長帐要,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任弥奸,我火速辦了婚禮榨惠,結果婚禮上,老公的妹妹穿的比我還像新娘盛霎。我一直安慰自己赠橙,他們只是感情好,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布愤炸。 她就那樣靜靜地躺著期揪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪规个。 梳的紋絲不亂的頭發(fā)上凤薛,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音诞仓,去河邊找鬼缤苫。 笑死,一個胖子當著我的面吹牛墅拭,可吹牛的內容都是我干的活玲。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翼虫!你這毒婦竟也來了屑柔?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤珍剑,失蹤者是張志新(化名)和其女友劉穎掸宛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體招拙,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡唧瘾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了别凤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饰序。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖规哪,靈堂內的尸體忽然破棺而出求豫,到底是詐尸還是另有隱情,我是刑警寧澤诉稍,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布蝠嘉,位于F島的核電站,受9級特大地震影響杯巨,放射性物質發(fā)生泄漏蚤告。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一服爷、第九天 我趴在偏房一處隱蔽的房頂上張望杜恰。 院中可真熱鬧,春花似錦仍源、人聲如沸心褐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽檬寂。三九已至终抽,卻和暖如春戳表,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昼伴。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工匾旭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人圃郊。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓价涝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親持舆。 傳聞我的和親對象是個殘疾皇子色瘩,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內容