国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Python&PyCharm&Django搭建web開發環境

2019-11-14 17:15:45
字體:
來源:轉載
供稿:網友
一、安裝軟件

1、安裝 Python 2.7、PyCharm、pip(Python包管理工具)、Django ( pip install Django)


二、部署
1、PyCharm 新建Django工程
 
 
完成后,其目錄如下:
 
 
子目錄MyDjangoPRoject下表示工程的全局配置,分別為setttings.py、urls.py和wsgi.py,其中setttings.py包括了系統的數據庫配置、應用配置和其他配置,urls.py則
表示web工程Url映射的配置。
子目錄student則是在該工程下創建的app,包含了models.py、tests.py和views.py等文件
templates目錄則為模板文件的目錄
manage.py是Django提供的一個管理工具,可以同步數據庫等等
 
2、啟動
創建完成后,就可以正常啟動了。點擊Run 按鈕,啟動時報錯了:
 
 1 Traceback (most recent call last): 2   File "D:/workspace/MyDjangoProject/manage.py", line 10, in <module> 3     execute_from_command_line(sys.argv) 4   File "D:/Python27/lib/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 5     utility.execute() 6   File "D:/Python27/lib/site-packages/django/core/management/__init__.py", line 312, in execute 7     django.setup() 8   File "D:/Python27/lib/site-packages/django/__init__.py", line 18, in setup 9     apps.populate(settings.INSTALLED_APPS)10   File "D:/Python27/lib/site-packages/django/apps/registry.py", line 89, in populate11     "duplicates: %s" % app_config.label)12 django.core.exceptions.ImproperlyConfigured: application labels aren't unique, duplicates: admin
應該是admin配置沖突了,打開setttings.py文件,發現admin配置重復了
 1 INSTALLED_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文件,輸入以下內容
 
def sayHello(request):    s = 'Hello World!'    current_time = datetime.datetime.now()    html = '<html><head></head><body><h1> %s </h1><p> %s </p></body></html>' % (s, current_time)    return HttpResponse(html)
打開url.py文件,需要進行url映射的配置:
url(r'^student/', sayHello)
當用戶輸入http://**/student 時,便會調用sayHello方法,該方法通過HttpResponse()將頁面內容作為響應返回。
 
重啟服務,訪問http://localhost:8000/student/
 
在views.py頁面可以將頁面需要的元素通過字符串的形式,調用HttpResponse()類作為響應返回到瀏覽器。但這樣,頁面邏輯和頁面混合在一起,手寫起來很繁瑣,工作量比較大。如果我們需要展示一些動態的數據,而頁面基本不改變的情況下,該怎么做呢?
比如在用戶訪問 http://localhost:8000/student/ 時,我們想動態展示一些學生的數據??梢赃@樣做:
首先在templates目錄下,新建 student.html文件,該文件作為模板,內容如下:
 1 <!DOCTYPE html> 2 <html> 3 <head> 4     <title></title> 5 </head> 6 <body> 7     <ul> 8         {% for student in students %} 9         <li>10             id:{{ student.id }},姓名:{{ student.name }},age: {{ student.age }}11         </li>12         {% endfor %}13     </ul>14 </body>15 </html>
修改 views.py文件,添加方法showStudents()
1 def showStudents(request):2     list = [{id: 1, 'name': 'Jack'}, {id: 2, 'name': 'Rose'}]3     return render_to_response('student.html',{'students': list})
該方法將list作為動態數據,通過render_to_response方法綁定到模板頁面student.html上。
 
添加url映射,url(r'^showStudents/$', showStudents)
修改settings.py模板配置:'DIRS': [BASE_DIR+r'/templates'],
 
重啟服務,訪問http://localhost:8000/showStudents,出現:
 
至此,我們已可以正常將一些“動態”數據綁定到模板上了。但是怎么樣訪問數據庫呢?
從數據庫獲取需要的數據,展示在頁面上?
 
首先需要安裝數據庫驅動啦,即MySQL_python,
 接著配置數據庫連接:
 
 1 DATABASES = { 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 }
配置完成之后,需要檢測數據庫配置是否正確,使用 manage.py shell命令,進入shell交互界面:
輸入:
1 from django.db import connection2 cursor = connection.cursor()
 
如果不報錯,說明配置正確。
創建model,打開models.py,定義model如下:

1 class Student(models.Model):2     id = models.BigIntegerField3     name = models.CharField(max_length=20, default='a')
 
然后調用 manage.py syncdb
正常情況下,該步驟做完之后,model 會和數據庫保持一致性。但是在測試中,命令執行成功后,卻發現數據庫并沒有建立該表。
對于該種情況,做如下操作即可正常:
(1)注釋掉models.py文件代碼,執行 manage.py makemigerations student
【和manage.py migerate --fake】
(2)打開注釋,執行【 manage.py makemigerations student和 】manage.py migerate命令
通過以上兩步,便可正常操作了
 
views.py中添加方法:showRealStudents
    
1 def showRealStudents(request):2     list = Student.objects.all()3     return render_to_response('student.html', {'students': list})
urls.py添加映射 url(r'^showRealStudents/$', showRealStudents)
 
重啟服務,打開連接:http://localhost:8000/showRealStudents
頁面輸出正常。
至此,使用Django,可以正常操作數據庫,自定義模板,在頁面展示數據了。
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇康县| 吕梁市| 鹿泉市| 永福县| 寿宁县| 东丰县| 山西省| 紫金县| 巩义市| 尚义县| 平顶山市| 资溪县| 延川县| 慈溪市| 巴塘县| 南皮县| 新邵县| 金塔县| 汽车| 革吉县| 阿拉善右旗| 洛浦县| 镇雄县| 娄底市| 伊川县| 商都县| 尼玛县| 威远县| 马关县| 莆田市| 杨浦区| 乳源| 天柱县| 齐齐哈尔市| 万载县| 河源市| 伊吾县| 道孚县| 三亚市| 原阳县| 舞钢市|