Python & PyCharm & Django 搭建web開發(fā)環(huán)境

Python & PyCharm & Django 搭建web開發(fā)環(huán)境

一河质、安裝軟件

1飘千、安裝 Python 2.7轩勘、PyCharm隘世、pip(Python包管理工具)可柿、Django ( pip install Django)

二、部署

1丙者、PyCharm 新建Django工程

完成后复斥,其目錄如下:

子目錄MyDjangoProject下表示工程的全局配置,分別為setttings.py械媒、urls.py和wsgi.py,其中setttings.py包括了系統(tǒng)的數(shù)據(jù)庫配置目锭、應用配置和其他配置,urls.py則

表示web工程Url映射的配置纷捞。

子目錄student則是在該工程下創(chuàng)建的app痢虹,包含了models.py、tests.py和views.py等文件

templates目錄則為模板文件的目錄

manage.py是Django提供的一個管理工具主儡,可以同步數(shù)據(jù)庫等等

2奖唯、啟動

創(chuàng)建完成后,就可以正常啟動了糜值。點擊Run 按鈕丰捷,啟動時報錯了:

1Traceback (most recent call last):2File"D:/workspace/MyDjangoProject/manage.py", line 10,in3execute_from_command_line(sys.argv)4File"D:\Python27\lib\site-packages\django\core\management\__init__.py", line 338,inexecute_from_command_line5utility.execute()6File"D:\Python27\lib\site-packages\django\core\management\__init__.py", line 312,inexecute7django.setup()8File"D:\Python27\lib\site-packages\django\__init__.py", line 18,insetup9apps.populate(settings.INSTALLED_APPS)10File"D:\Python27\lib\site-packages\django\apps\registry.py", line 89,inpopulate11"duplicates: %s"%app_config.label)12django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: admin

應該是admin配置沖突了,打開setttings.py文件臀玄,發(fā)現(xiàn)admin配置重復了

1INSTALLED_APPS =(2'django.contrib.admin',3'django.contrib.auth',4'django.contrib.contenttypes',5'django.contrib.sessions',6'django.contrib.messages',7'django.contrib.staticfiles',8'django.contrib.admin',9'student',10)

注釋掉其中一行后(為什么會有這個問題瓢阴,估計是個bug),重新啟動健无,ok

3荣恐、web工程添加頁面

此時,我們尚沒有寫一行代碼,程序就duang跑起來了! 快添加一個Hello World的頁面吧叠穆。

打開student/views.py文件少漆,輸入以下內(nèi)容

1

2

3

4

5defsayHello(request):

s='Hello World!'

current_time=datetime.datetime.now()

html='

%s

%s

'%(s, current_time)

returnHttpResponse(html)

打開url.py文件,需要進行url映射的配置:

url(r'^student/', sayHello)

當用戶輸入http://**/student 時硼被,便會調(diào)用sayHello方法示损,該方法通過HttpResponse()將頁面內(nèi)容作為響應返回。

重啟服務嚷硫,訪問http://localhost:8000/student/

在views.py頁面可以將頁面需要的元素通過字符串的形式检访,調(diào)用HttpResponse()類作為響應返回到瀏覽器。但這樣仔掸,頁面邏輯和頁面混合在一起脆贵,手寫起來很繁瑣,工作量比較大起暮。如果我們需要展示一些動態(tài)的數(shù)據(jù)卖氨,而頁面基本不改變的情況下,該怎么做呢负懦?

比如在用戶訪問http://localhost:8000/student/時筒捺,我們想動態(tài)展示一些學生的數(shù)據(jù)≈嚼鳎可以這樣做:

首先在templates目錄下系吭,新建 student.html文件,該文件作為模板颗品,內(nèi)容如下:

1234567

    8{% for student in students %}9
  • 10id:{{ student.id }},姓名:{{ student.name }},age: {{ student.age }}11
  • 12{% endfor %}13
1415

修改 views.py文件村斟,添加方法showStudents()

1defshowStudents(request):2list = [{id: 1,'name':'Jack'}, {id: 2,'name':'Rose'}]3returnrender_to_response('student.html',{'students': list})

該方法將list作為動態(tài)數(shù)據(jù),通過render_to_response方法綁定到模板頁面student.html上抛猫。

添加url映射,url(r'^showStudents/$', showStudents)

修改settings.py模板配置:'DIRS': [BASE_DIR+r'\templates'],

重啟服務孩灯,訪問http://localhost:8000/showStudents闺金,出現(xiàn):

至此,我們已可以正常將一些“動態(tài)”數(shù)據(jù)綁定到模板上了峰档。但是怎么樣訪問數(shù)據(jù)庫呢败匹?

從數(shù)據(jù)庫獲取需要的數(shù)據(jù),展示在頁面上讥巡?

首先需要安裝數(shù)據(jù)庫驅(qū)動啦掀亩,即mysql_python,

接著配置數(shù)據(jù)庫連接:

1DATABASES ={2'default': {3'ENGINE':'django.db.backends.mysql',4'NAME':'student',5'USER':'root',6'PASSWORD':'1234',7'HOST':'127.0.0.1',8'PORT':'3306',9#'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),10}11}

配置完成之后欢顷,需要檢測數(shù)據(jù)庫配置是否正確槽棍,使用 manage.py shell命令,進入shell交互界面:

輸入:

1fromdjango.dbimportconnection2cursor = connection.cursor()

如果不報錯,說明配置正確炼七。

創(chuàng)建model,打開models.py缆巧,定義model如下:

1classStudent(models.Model):2id =models.BigIntegerField3name = models.CharField(max_length=20, default='a')

然后調(diào)用 manage.py syncdb

正常情況下,該步驟做完之后豌拙,model 會和數(shù)據(jù)庫保持一致性陕悬。但是在測試中,命令執(zhí)行成功后按傅,卻發(fā)現(xiàn)數(shù)據(jù)庫并沒有建立該表捉超。

對于該種情況,做如下操作即可正常:

(1)注釋掉models.py文件代碼唯绍,執(zhí)行 manage.py makemigerations?student

【和manage.py migerate --fake】

(2)打開注釋拼岳,執(zhí)行【?manage.py makemigerations student和 】manage.py migerate命令

通過以上兩步,便可正常操作了

views.py中添加方法:showRealStudents

1defshowRealStudents(request):2list =Student.objects.all()3returnrender_to_response('student.html', {'students': list})

urls.py添加映射?url(r'^showRealStudents/$', showRealStudents)

重啟服務推捐,打開連接:http://localhost:8000/showRealStudents

頁面輸出正常裂问。

至此,使用Django牛柒,可以正常操作數(shù)據(jù)庫堪簿,自定義模板,在頁面展示數(shù)據(jù)了皮壁。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末椭更,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蛾魄,更是在濱河造成了極大的恐慌虑瀑,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滴须,死亡現(xiàn)場離奇詭異舌狗,居然都是意外死亡,警方通過查閱死者的電腦和手機扔水,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門痛侍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人魔市,你說我怎么就攤上這事主届。” “怎么了待德?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵君丁,是天一觀的道長。 經(jīng)常有香客問我将宪,道長绘闷,這世上最難降的妖魔是什么橡庞? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮簸喂,結(jié)果婚禮上毙死,老公的妹妹穿的比我還像新娘。我一直安慰自己喻鳄,他們只是感情好扼倘,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著除呵,像睡著了一般再菊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颜曾,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天纠拔,我揣著相機與錄音,去河邊找鬼泛豪。 笑死稠诲,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的诡曙。 我是一名探鬼主播臀叙,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼价卤!你這毒婦竟也來了劝萤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤慎璧,失蹤者是張志新(化名)和其女友劉穎床嫌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胸私,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡厌处,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岁疼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱蛋。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖五续,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情龄恋,我是刑警寧澤疙驾,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站郭毕,受9級特大地震影響它碎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一扳肛、第九天 我趴在偏房一處隱蔽的房頂上張望傻挂。 院中可真熱鬧,春花似錦挖息、人聲如沸金拒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绪抛。三九已至,卻和暖如春电禀,著一層夾襖步出監(jiān)牢的瞬間幢码,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工尖飞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留症副,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓政基,卻偏偏與公主長得像贞铣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子腋么,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容