python 虛擬環境之virtualenv與django初體驗

這裏寫圖片描述

0x01

django是一個python打造的web應用框架,借python的快速開發對django進行學習。

我這裏使用的 樹莓派搭載kali_4.9.59 + python2.7 進行測試

0x02 準備工作

在項目開發中,每個項目常會使用不一樣的開發環境,爲了將每個項目不一樣的開發環境隔離開來,可在同一臺開發機上使用virtualenv給每個項目創建單獨的開發環境。

A、建立開發虛擬環境

1、安裝virtualenv

~# pip install virtualenv

安裝完成之後會提供一個命令行工具 virtualenv

2、創建工作目錄 並使用virtualenv初始化

~# mkdir workspace
~# virtualenv django_study

創建完成之後會生成對應項目名稱的文件夾,我們進入文件夾的bin目錄開啓virtualenv環境

~# cd django_study/bin
~/django_study/bin$ source ./activete
(django_study) ~/django_study/bin#

可以看到前面多了一對括號包含了目錄名,表示當前已經處於virtualenv虛擬環境下

現在就可以開始進行項目的開發了,不用擔心項目因爲各種環境安裝過多造成的污染

B、django

1、安裝django

首先安裝django,安裝完成之後會提供一個django-admin的命令行工具進行項目管理

在virtualenv環境下進行安裝的所有python環境安裝包都會安裝到當前的virtualenv環境,對系統自身的環境沒有任何影響,可以通過查看以上的django_study目錄。

然後需要使用django-admin初始化一個項目目錄

(django_study) ~/# pip install django
(django_study) ~/# django-admin startproject django_workspace

2、運行django並進行開發

初始化完成後,會生成一個項目文件夾,包含一個項目名的目錄和manage.py的管理工具。

django可以在運行過程中修改項目文件,它自身會實時刷新更改後的文件,所以免去了文件被更改後需要重新啓動的繁瑣工作。

(django_study) ~/# cd django_workspace
(django_study) ~/django_workspace/# ./manage.py runserver 0.0.0.0:9999

此時我們的django框架已經運行起來了,端口號爲9999,可以使用瀏覽器訪問一下

這裏寫圖片描述

2、創建應用

運行起來之後,我們就可以開始建立我們自己的應用

比如我建立一個hello的應用

(django_study) ~/django_workspace/# django-admin start hello

建立完成之後會生成相應的app目錄

本次體驗我們首先寫一個簡單的hello world

主要改動的文件如下

  • hello/views.py
  • templates/index.html
  • django_workspace/urls.py
  • django_workspace/settings.py

0x03 初體驗

我準備了一份index.html的hello文件,並實現訪問hello時則響應我的hello請求,訪問index則返回index.html靜態頁面兩個簡單的功能。

1、訪問 http://ip/hello , 返回 hello
2、訪問 http://ip/index , 返回一個靜態頁面

1、準備index.html文件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>hello,world</title>
    </head>
    <body>
        <h1>Hello </h1>
        <p>World</p>
    </body>
</html>

在django目錄下新建templates文件夾,將index.html放入文件夾內

2、hello/views.py 的修改

此文件是我們應用的視圖文件,當我們從瀏覽器中訪問我們的應用時,都由此文件進行控制

比如別人訪問我們的某個鏈接地址,我們希望獲取GET或POST提交的參數,並且根據url執行對應操作,或返回某個靜態頁面,都在此文件中進行控制,以下內容爲新增內容,非覆蓋添加

from django.http import HttpResponse

def hello(request):
    return HttpResponse('hello')

def index(request):
    return render(request, "index.html")

3、django_workspace/urls.py 的修改

此文件用於配置url鏈接,每一個url地址對應一個方法,在上述第2個步驟中實現該方法

from django.conf.urls import url
from django.contrib import admin
from hello import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^hello', views.hello),
    url(r'^index', views.index),
]

url指定爲 hello 對應到 views.hello方法

url指定爲 index 對應到 views.index方法

4、django_workspace/settings.py 的配置

我主要修改了以下幾個參數

1. 配置允許被訪問的地址

ALLOWED_HOSTS = ["*"]

2. 添加應用

INSTALLED_APPS = [
    'hello',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

3. 增加模版路徑

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates').replace('\\', '/'),],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

這裏附上一份簡單的配置說明

BASE_DIR            // 根目錄
DEBUG               // 調試開關,開發模式下爲True
INSTALLED_APPS      // APP路徑,默認添加同名app名稱即可
DATABASES           // 數據庫配置,默認SQLITE3,如果使用MYSQL需要另行配置,此處不做闡述
ALLOWED_HOSTS       // 允許被訪問的IP,此處可在括號內填星號,表示允許所有IP
STATIC_URL          // 靜態文件臨時調用目錄
STATICFILES_DIRS    // 靜態文件目錄
MIDDLEWARE          // 中間件,自己寫的中間件要填在系統自帶中間件之後
TEMPLATES           // 模版

0x04 結果

1、hello

這裏寫圖片描述

2、index.html

這裏寫圖片描述

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