Django學習筆記(一)

django


最近又開始了django的學習,雖然學了不少,但越學越迷茫耶,可能python基礎不是很牢固?;氐綄W校一定好好啃啃書。

本次學習參考了《Django中文教程》

下載地址

《Django 中文教程》


進入正題

1、什么是Django

? ? ? 一個可以使Web開發(fā)工作愉快并且高效的Web開發(fā)框架。 使用Django,使你能夠以

最小的代價構建和維護高質量的Web應用。

由于先前沒有學過任何Web框架,我把django 的理解成一個小型服務器的python web框架。事實證明,學django 前了解一下php之類的服務器語言可能效果更好 :)


2、學習心得

書籍方面,講的很好很好,但版本原因,本書使用的例子是django 1.1.0版本的,很老的版本,當時的django還不成熟,有些功能在現(xiàn)在最新的版本下一句被去除,所以有些地方不是完全正確的,我也通過一些整理,把學習的心得整理了一下。

①環(huán)境搭建:

我使用的是python3,安裝django的方法是使用pip

pip install django

使用IPython查看是否安裝成功(其他可交互的編譯器也ok)

版本為1.11.3的django

然后需要安裝數(shù)據(jù)庫,我使用的是mysql,要調用mysql,python3沒用了mysqldb,只能使用pymysql,使用pip安裝

pip install pymysql


②開始項目

在需要搭建的目錄下,運行命令django-admin.py startproject helloworld,會創(chuàng)建一個helloworld目錄

這個目錄需要做一些配置才能讓django更好的工作

1、django的數(shù)據(jù)庫配置

進入settings.py

DATABASES={

'default':{

'ENGINE':'django.db.backends.mysql', #調用mysql

'NAME':'test', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#數(shù)據(jù)庫名

'USER':'root', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#用戶名

'PASSWORD':'root', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#密碼

'HOST':'', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #默認localhost

}

}

然后,在__init__.py里配置mysql

import pymysql

pymysql.install_as_MySQLdb()

這樣就把數(shù)據(jù)庫的準備工作完成了

2、現(xiàn)在可以運行django了,命令行進入到有manage.py的文件夾,使用命令

python manage.py runserver

即后,便可以在http://127.0.0.1:8000/下訪問django了

但這個8000是默認的,可以在runserver后輸入端口號。


當以上的頁面顯示的時候說明已經成功把django配置好了!

3、開始最經典的helloworld

django是MVC模型,M是模型model,V是視圖view,C是控制器controller。

在這些自動生成的文件里,并沒有這三個文件(模塊),那就自己創(chuàng)建一個吧!

①在工程里新建一個叫views.py的文件(當然不一定得是這個名字,但能直觀地看出來是視圖模塊)

在里面輸入

from django.http import HttpResponse

def Hello_World(request):

? ? ? ? return HttpResponse("Hello,World!")

這里是從django.http包里導出HttpResponse對象,該對象會針對客戶端的請求(request)發(fā)送響應(response)。這里響應了Hello,World字符串,也可以響應html文件。

注:每個視圖函數(shù)至少要有一個參數(shù),通常被叫作request。這是一個觸發(fā)這個視圖、包含當前Web請求信息的

對象,是類django.http.HttpRequest的一個實例。在這個示例中,我們雖然不用request做任何事情,然

而它仍必須是這個視圖的第一個參數(shù)。

②找到urls.py文件,到入剛剛的views文件,并添加url對象

from views import Hello_World

urlpatterns=[

? ? ? url(r'^admin/',admin.site.urls),

? ? ? url(r'^hello/$',Hello_World),

]

第一行和第四行是添加的內容,需要注意的是

1、Hello_World函數(shù)并不打上()括號,因為它傳遞的是這個函數(shù)的指針

2、r'^hello/$' 其實是正則表達式,^h是必須以h為開頭,/$則是以/為結尾,如果只輸入hello的話,可能輸入no_hello也會被匹配進去,hello_yo也會被包含進去,通過正則表達式可以很好的配置地址。(另:django會自發(fā)的在地址后面增加/)


這時候進入http://127.0.0.1:8000/hello/

就會看到Hello,World!

其實還可以輸入html格式的字符串給HttpResponse對象。例如

<h1 style='color:red;'>Hello,World!</h1>

就會輸出紅色的標題HelloWorld


這就是簡單的一個應用了(雖然low到不行),但既然可以傳遞html文件,那就可以通過前端搭建的網頁來潤色整個django了!


4、自身的不足的總結

不得不說,基礎很重要啊,而且學習資料的版本也很重要?。?/p>

①正則表達式的合理使用會減輕很多工作,所以有必要對正則表達式來一次全方位無死角的學習。雖然之前學過一些,但效率極低……

②數(shù)據(jù)庫的深入學習也是有必要的,可以更好地對服務器的數(shù)據(jù)與客戶端(前端)進行交互。當初學javascript的ajax沒有個后端真是頭大啊?,F(xiàn)在django可以更好地輔助學習了

③對python自身的官方庫可以說是零基礎了,沉迷于各種第三方的庫,導致os各種操作的庫沒有好好學習過,更別談什么應用在實際項目中了……


呼~時間真快,學習的旅途還很遙遠,希望真正地能將學習到的東西運用到生活中,更希望在學習中能磨礪自己。干巴爹~? ~(一∨一)~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容