一、下載與安裝(Windows版)
下載地址:https://www.djangoproject.com/download/
或者通過命令:pip install django==1.11.2進行安裝(Python3使用pip3)推薦使用此版本
安裝完成後找到django-admin.exe所在的路徑,將其添加到環境變量Path中,以便於今後在任何位置運行命令。
二、創建django程序
1、終端方式創建
django-admin startproject my_site #創建一個名稱爲my_site的django程序,即文件夾,在哪個目錄執行命令即在那個目錄創建
執行成功之後會生成如圖目錄結構:
執行:python manage.py runserver 127.0.0.1:8000
這時,django已經在本地跑起來了...
其他常用命令:
python manage.py runserver 0.0.0.0 #不限定IP和端口
python manage.py startapp appname #在項目中創建app即不同的功能模塊
python manage.py syncdb #同步數據庫
python manage.py makemigrations #基於當前的model創建新的遷移策略文件
python manage.py migrate #用於執行遷移動作
python manage.py createsuperuser #創建超級管理員
注:migration是基於App的, 因此, 我們可以針對某些app不啓用migration功能
2、IDE方式創建django項目
工具:pycharm
步驟:File---NewProject---Django---選擇好Python解釋器然後點擊“create”即可搞定
三、配置
1、配置數據庫
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbname', 'USER': 'root', 'PASSWORD': 'xxx', 'HOST': '', 'PORT': '', } }
可在與項目名同名的目錄中找到settings.py文件然後將默認的DATABASES項進行修改,Django支持多種數據庫,上述爲mysql配置方式,詳情請參考官方文檔
另外,Django默認的連接mysql的模塊爲MysqlDB,而python3中還沒有此模塊,需要使用pymysql,這時需要在__init__.py中導入pymysql並設置
import pymysql pymysql.install_as_MySQLdb()
2、模板配置
TEMPLATE_DIRS = ( os.path.join(BASE_DIR,'templates'), )
此項一般不用設置,瞭解其是放置模板文件(html)的即可
3、靜態文件路徑
STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), )
此目錄放置網站所用到的圖片、媒體、樣式、插件等文件
4、剛接觸django,建議先註釋掉settings.py文件中的以下一行,後面做以解釋,不然測試時有可能出現錯誤
MIDDLEWARE中的:# 'django.middleware.csrf.CsrfViewMiddleware',
四、路由系統
所謂路由,其實就是路徑,導向,即一個URL請求來到服務器端之後,django怎麼取匹配這個url並且得需要判斷這個url具體應該訪問到哪些資源或者定位到哪個地方,然後再由相應的地方處理此請求並且返回給客戶端。
1、單一路由對應:一個url對應一個處理函數,即
url(r'^index$', views.index),
2、基於正則的路由
url(r'^index/(\d*)', views.index), url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage),
3、添加額外的參數
url(r'^manage/(?P<name>\w*)', views.manage,{'id':333}),
4、爲路由映射設置名稱
url(r'^home', views.home, name='h1'), url(r'^index/(\d*)', views.index, name='h2'),
設置名稱之後,可以在不同的地方調用,如:
模板中使用生成URL {% url 'h2' 2012 %}
函數中使用生成URL reverse('h2', args=(2012,)) 路徑:django.urls.reverse
Model中使用獲取URL 自定義get_absolute_url() 方法
5、根據app對路由規則進行分類(路由分發)
url(r'^web/',include('web.urls')),
django中的路由系統和其他語言的框架有所不同,在django中每一個請求的url都要有一條路由映射,這樣才能將請求交給對一個的view中的函數去處理。其他大部分的Web框架則是對一類的url請求做一條路由映射,從而是路由系統變得簡潔。
五、admin
django amdin是django提供的一個後臺管理頁面,改管理頁面提供完善的html和css,使得你在通過Model創建完數據庫表之後,就可以對數據進行增刪改查,而使用django admin 則需要以下步驟:
創建後臺管理員
配置url
註冊和配置django admin後臺管理頁面
1、創建後臺管理員
python manage.py createsuperuser
2、配置後臺管理url
url(r'^admin/', include(admin.site.urls))
3、註冊和配置django admin後臺管理頁面
admin.py中執行如下代碼:
from django.contrib import admin from app01 import models admin.site.register(models.UserType)
另外,還可通過Bootstrap給後臺管理頁面添加樣式,讓頁面好看起來