Django學習 第一節 基礎環境配置

       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,是最新版本。

wKioL1hKzFyhzwxAAAAM1chDfnk803.png




二、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

wKioL1hKzNrBs59LAABJ_hllfPs790.png

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頁面,如果看到下面的頁面說明你的第一步已經成功了。

wKiom1hKzSHjQbIkAABbf0CmGNA973.png

5. 更多命令

輸入python manage.py 命令可以查看詳細的命令列表,不記得相關命令時可以這樣查詢。

wKiom1hKzW3z0kx3AABE5d78NnA898.png


三、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 對應管理後臺


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章