魯去非 湖北大學(xué)知行學(xué)院
首先,我們需要設(shè)計(jì)一個(gè)模型用于與數(shù)據(jù)庫(kù)交互,例如我們要設(shè)計(jì)一個(gè)名片的模型。
設(shè)計(jì)完模型后,如果想讓數(shù)據(jù)庫(kù)中產(chǎn)生相應(yīng)的表,首先需要生成遷移文件,然后完成遷移。這時(shí),數(shù)據(jù)庫(kù)中就會(huì)生成一個(gè)唯一對(duì)應(yīng)的表,用于存儲(chǔ)定義的數(shù)據(jù)。但是在這之前,我們還需要在setting.py文件中定義想要使用的數(shù)據(jù)庫(kù)。
定義數(shù)據(jù)庫(kù)需要輸入相應(yīng)的信息,例如:
視圖用于接收請(qǐng)求,獲得數(shù)據(jù),返回結(jié)果。這時(shí)我們先初步設(shè)計(jì)一個(gè)簡(jiǎn)單的視圖
在django中,視圖對(duì)WEB請(qǐng)求進(jìn)行回應(yīng),視圖接收reqeust對(duì)象作為第一個(gè)參數(shù),包含了請(qǐng)求的信息,視圖就是一個(gè)Python函數(shù),被定義在views.py中。
HttpResponse對(duì)象:在django.http模塊中定義了HttpResponse對(duì)象的API
HttpRequest對(duì)象由Django自動(dòng)創(chuàng)建,HttpResponse對(duì)象由程序員創(chuàng)建,不調(diào)用模板,直接返回?cái)?shù)據(jù)。這里我們返回了一條字符串,那么在瀏覽器中,就只有這一段字符串顯示。
說(shuō)到HttpResponse,就要說(shuō)到它的兩個(gè)子類HttpResponseRedirect、JsonResponse。
HttpResponseRedirect用 于 重 定 向, 例 如 return HttpResponseRedirect(‘hello'),觸發(fā)的時(shí)候就會(huì)重新轉(zhuǎn)向另一個(gè)頁(yè)面。JsonResponse則用于返回json數(shù)據(jù),一般用于異步請(qǐng)求,例如return JsonResponse({'list': 'abc'}),參數(shù)為字典對(duì)象。這么多種方法,可能會(huì)讓人感到應(yīng)用困難,那么 render()方法應(yīng)運(yùn)而生。
render(request, template_name, context)
結(jié)合一個(gè)給定的模板和一個(gè)給定的上下文字典,并返回一個(gè)渲染后的HttpResponse對(duì)象。request:該request用于生成response,template_name:要使用的模板的完整名稱,context:添加到模板上下文的一個(gè)字典,視圖將在渲染模板之前調(diào)用它。重定向函數(shù)則用redirect()來(lái)使用,為傳遞進(jìn)來(lái)的參數(shù)返回HttpResponseRedirect。
在settings.py文件中通過(guò)ROOT_URLCONF指定根級(jí)url的配置
urlpatterns是一個(gè)url()實(shí)例的列表
一個(gè)url()對(duì)象包括:1.正則表達(dá)式 2.視圖函數(shù) 3.名稱name
編寫(xiě)URLconf時(shí)注意:1.如果要從url中捕獲一個(gè)值,需要在它周圍設(shè)置一對(duì)圓括號(hào) 2.不需要添加一個(gè)前導(dǎo)的反斜杠,如應(yīng)該寫(xiě)作'test/',而不應(yīng)該寫(xiě)作'/test/' 3.每個(gè)正則表達(dá)式前面的r表示字符串不轉(zhuǎn)義。
這里我們配置一個(gè)基礎(chǔ)的url:urlpatterns = [url(r'^$',views.index),] 然后在瀏覽器中就可以看到我們定義的視圖中的字符串了。
首先要?jiǎng)?chuàng)建管理員的用戶名和密碼,在命令行輸入:python manage.py createsuperuser
然后按照提示輸入用戶名、郵箱和密碼,就可以完成管理員的創(chuàng)建。
接下來(lái),在應(yīng)用內(nèi)的admin.py文件中完成注冊(cè),然后就可以在后臺(tái)管理站點(diǎn)中維護(hù)模型數(shù)據(jù)了。 首先將models中的模型導(dǎo)入admin.py: from .models import * 接下來(lái)完成注冊(cè):admin.site.register(Article)
之后,登陸 127.0.0.1:8000/admin/ 就可以進(jìn)入admin站點(diǎn),然后輸入賬號(hào)密碼,就可以維護(hù)模型數(shù)據(jù)了。