前言:前段時間學習Django,從入門到搭建項目,花了不少時間。期間涉及的內容也不少,寫篇博客總結一下。網上已經有大量的相關的介紹、學習資料,推薦兩個比較有代表性的學習網站:自強學堂Django教程、官方文檔。
一、簡介
Django是一款常用的python的web開發框架,採用MVT框架。
M:表示model,負責與數據庫的交互;
V:表示view,負責請求的接受處理,返回響應;
T:表示template,負責一些html頁面,靜態文件等的渲染管理。
二、新建項目
我是在ubuntu16.04上建的項目,ubuntu自帶多個版本的python,一般我們先用virtualenv創建python虛擬環境,然後在虛擬環境中開發。
1、首先安裝好virtualenv,然後創建虛擬環境,默認命令創建的是python2的虛擬環境,我們用指定命令創建python3.5的虛擬環境,環境名稱叫h1。
mkvirtualenv xxx #創建虛擬環境xxx,默認是python2的虛擬環境
rmvirtualenv xxx #刪除虛擬環境xxx
workon xxx #進入虛擬環境xxx
workon (雙擊Tab) #顯示所有的虛擬環境
deactivate #退出虛擬環境
mkvirtualenv -p /usr/bin/python3.5 h1 #創建基於python3.5的虛擬環境h1
虛擬環境創建成功後有如下提示,開頭的(h1)提示已經進入虛擬環境h1中。然後輸入命令pip list可以查看當前環境中安裝的包,有三個。
2、安裝Django
上面創建的虛擬環境中只有三個包,pip、setuptools、wheel,所以我們需要安裝下django。命令如下:
pip install django #安裝最新版本的django,現在是2.1.4
pip install django==1.8.2 #安裝指定版本的django
3、新建項目
在虛擬環境h1中輸入以下命令創建新項目,這裏項目叫mysite
django-admin startproject mysite #創建項目mysite
運行之後終端沒什麼提示,但是在當前路徑下,會生成一個叫mysite的文件夾。打開文件夾,裏面有一個同名文件夾mysite和一個manage.py文件,如下圖。
- manage.py:一個命令行工具,可以使你用多種方式對Django項目進行交互
- 內層的目錄:項目的真正的Python包
- __init__.py:一個空文件,它告訴Python這個目錄應該被看做一個Python包
- settings.py:項目的配置
- urls.py:項目的URL聲明
- wsgi.py:項目與WSGI兼容的Web服務器入口
4、新建app
上面新建了項目,但是隻有一些基本的配置文件。我們要開始實現功能,需要在app中開發。一個app可以理解爲一個功能模塊,負責一類的功能。先cd到manage.py所在文件夾,在終端輸入如下命令:
python manage.py startapp app1 #創建名爲app1的app
完成後,在mysite目錄下多了一個app1文件夾,目錄結構如下:
- admin.py:django自帶一個後臺管理admin,在這個文件裏你可以設置你要在後臺管理的模型累類
- apps.py:django的一個配置文件
- __init__.py:同上
- migrations:數據庫遷移文件保存在其中
- models:在這裏創建模型類
- test.py:測試用文件
- views.py:用於接收請求並且處理返回,主要的業務邏輯都在這個文件中實現
生成app後,還需要在setting.py文件中設置,把app1加入到INSTALLED_APPS中:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app1' #加入
]
5、views函數構造
打開views.py文件,構造響應函數index,返回值爲字符串‘Hello World!’。
from django.shortcuts import render
from django.shortcuts import HttpResponse #引用HttpResponse
# Create your views here.
def index(request):
return HttpResponse('Hello World!') #返回響應
6、配置url
在mysite文件夾下的url.py中先引用views文件,再添加路徑
from django.contrib import admin
from django.urls import path
from app1 import views #引用views文件
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.index) #當有請求訪問根目錄時,調用views.index函數處理請求
]
7、運行當前項目
cd到項目根目錄下,終端輸入命令 python manage.py runserver 運行當前項目。出現以下提示表示運行成功,項目運行在本地8000端口,按住ctrl鼠標單擊http://127.0.0.1:8000/可以直接打開瀏覽器訪問。ctrl+c退出服務。你也可以指定運行的端口號,比如8002端口,python manage.py runserver 8002 。
到此一個簡單的web服務就完成了。
歡迎關注個人公衆號!