您好,登錄后才能下訂單哦!
Django是一個高效的web開發框架,使用Django可以用最小的代價構建和維護高質量的web應用。通過減少重復的代碼,讓人能夠專注于web應用上有趣的關鍵性的東西。
遵循了模型-視圖-控制器(MVC)的設計模式。簡單來說,MVC是一種軟件開發的方法,它把定義和訪問 數據的代碼(模型 model)、控制請求邏輯的代碼(控制器 controller)和用戶接口(視圖 view)分割開來。我們會在以后更加深入地討論MVC。
這個方法最重要的優點在于它的各個部分都是 松耦合 (loosely coupled)的。這樣用Django開發的Web程序中每個部分都有它自己單一的目的,并且可以單獨地被修改而不會影響到其他部分。比方說,一個程序員可以在不影響底層實現的情況下修改URL;設計師可以不需要接觸Python的代碼就修改頁面的HTML;數據庫管理員在重命名數據表之后只需要修改一個地方就可以了,而不需要在一大堆文件中查找替換。
一. Django基本環境的搭建
因為筆者為自己定下的發展方向是運維開發,因此所有的開發工作都會是在linux平臺上進行,后續的環境搭建也基本上都是在linux系統中,筆者使用的系統是RHEL7.2。通過pyenv來管理不同的虛擬環境,在不同的虛擬環境中可以使用不同的python版本,為后續的項目開發提供便利。
1. 安裝pip
yum install python-pip
2. 安裝pyenv
安裝pyenv的過程比較長,請見上一篇python開發環境準備文章。
3. 使用pyenv創建一個虛擬環境,然后切換到虛擬環境
pyenv virtualenv 3.5.2 myproject pyenv local myproject
4. 在虛擬環境中使用pip來安裝django
(myproject) # pip install django
5. 查看django是否安裝成功
# python -m django --version
可以看到下面的畫面,說明django安裝成功,這里安裝的django版本是1.9.8,是最新版本。
二、Django的基本命令
首先我自己創建一個Django的目錄myproject,然后在這里目錄里存放我自己的Django工程
# mkdir myproject
1. 創建一個工程
# django-admin.py startproject project-name # django-admin.py startproject mywebsite #我想創建一個自己的博客網站,項目叫mywebsite
2. 在工程里創建一個APP
# cd mywebsite #進入到mywebsite工程目錄 # project manage.py startapp app-name #這是創建網站APP的默認命令
#相當于創建工程底下的子項目
# 網站的第一個版本,叫做myweb # python manage.py startapp myweb
3. 同步數據庫
# python manage.py makemigrations #同步數據庫 # python manage.py migrate #創建數據庫 # python manage.py flush #清空數據庫,留下空表(使用時要注意) # python manage.py dbshell #進入數據庫命令行,如果是mysql或postresql會要用戶名密碼
我們剛開始創建網站,只需要先創建一個基礎的數據庫即可,其余的命令只需要記住就好。
$python manage.py migrate
4. 啟動自己的網站,使用Django初始頁面
# 命令說明
# python manage.py runserver #默認啟動方式,監聽在127.0.0.1:8000端口上 # python manage.py runserver ip:port #監聽在其他IP上 # 執行命令 # python manage.py runserver 127.0.0.1:8000
然后打開瀏覽器,打開http://127.0.0.1:8000頁面,如果看到下面的頁面說明你的第一步已經成功了。
5. 更多命令
輸入python manage.py 命令可以查看詳細的命令列表,不記得相關命令時可以這樣查詢。
三、Django框架簡單介紹
創建好了Django工程mywebsite和下屬的子項目myweb后,工程的文件目錄結構如下:
# tree mywebsite mywebsite/ ├── manage.py └── mywebsite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
manag.py 文件是工程項目所有管理命令的入口,可以使用python manage.py查看所有的命令
mywebsite目錄下是工程的所有文件
__init__.py 工程的初始化文件
settings.py Django的設置文件,如DEBBUG的開關,靜態文件的位置等
urls.py 網址的入口,關聯對應到views.py中的一個函數(或者generic類),訪問一個網址就對應一個函數
wsgi.py 部署服務器時使用到的文件
子項目myweb的目錄結構如下:
#tree myweb myweb ├── admin.py ├── apps.py ├── __init__.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py └── views.py
admin.py 與后臺登錄有關的文件
apps.py myweb屬性相關的文件
mirgrations 數據庫目錄
models.py 數據庫操作相關的文件
tests.py 項目測試有關的文件
views.py 網址函數,和工程目錄中的urls.py相對應
四 、啟動Django默認界面
1. 將新定義的myweb添加到settings.py中的INSTALL_APPS中
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myweb', #新加的內容 ]
還要將需要監聽的網卡外網地址加入到settings.py中的可信賴的地址列表ALLOWED_HOSTS 中(Django1.10新增內容):
ALLOWED_HOSTS = [ '192.168.1.246', ]
2. 在myweb里的views.py文件中定義視圖函數(訪問頁面時的內容)
#vim myweb/views.py
#下面是添加到views.py文件里的內容
#coding:utf-8 from django.http import HttpResponse def index(request): return HttpResponse("歡迎光臨小灰灰的第一個小站")
第一行聲明utf-8編碼,因為下面使用到了中文,不使用utf-8會報錯。
第二行插入了一個HttpResponse類,這個類是用來向網頁返回內容,把內容顯示在網頁上面
第三行定義了一個函數index(request),第一個參數是request,和網頁發來的請求有關,request變量里包含了get或post的內容,用戶的瀏覽器和系統等信息包含在里面。函數返回一個HttpResponse對象,這個對象將包含的值顯示在往上面
3. 添加視圖函數對應的網址,就在上面第三部分我們提到的urls.py文件里。
# vim mywebsite/urls.py
from django.conf.urls import url from django.contrib import admin from myweb import views as mywb_views #新添加的內容,從myweb項目里插入views模塊 urlpatterns = [ url(r'^$',myweb_views.index), #網址對應到views模塊里定義的index函數 url(r'^admin/', admin.site.urls), ]
內容修改后保存
4. 啟動我們的第一個Django項目,因為是在虛擬機上操作的,所以需要監聽在外部網卡IP上
# python manage.py runserver 0.0.0.0:8000
然后在其他機器上打開瀏覽器, 輸入虛擬機的IP和端口http://192.168.1.246:8000 ,就可以看到如下的頁面,說明我們的第一個web站點創建成功。
這一章節的知識點:
1. pip的國內源配置
2. 虛擬開發環境的配置
3. Django的基本命令,包括項目、APP的創建,數據的創建和更新。
django-admin.py startproject project-name
project manage.py startapp app-name
python manage.py makemigrations #同步數據庫
python manage.py migrate #創建數據庫
python manage.py flush #清空數據庫,留下空表(使用時要注意)
python manage.py dbshell #進入數據庫命令行,如果是mysql或postresql會要用戶名密碼
python manage.py runserver #默認啟動方式,監聽在127.0.0.1:8000端口上
python manage.py runserver ip:port #監聽在其他IP上
4. Django項目的基本架構,views.py、setting.py、urls.py、admin.py這幾個文件的含義和聯系
views.py 定義url響應函數,與urls.py配合使用。
settings.py 定義一些基本的配置參數
urls.py 定義對應的url規則
admin.py 對應管理后臺
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。