1. 程式人生 > >Django 入門介紹

Django 入門介紹

Django介紹

   Django框架是PythonWeb三大主流框架之一,以其功能強大全面而受到眾多開發者追捧,現如今Django已經更新到3版本,但是並不推薦使用,更多建議使用1版本。

Django版本Python版本
1.11 2.7、3.4、3.5、3.6、3.7(在1.11.17中新增)
2.0 3.4、3.5、3.6、3.7
2.1 3.5、3.6、3.7
2.2 3.5、3.6、3.7、3.8(在2.2.8中新增)
3.0、3.1 3.6、3.7、3.8

  

Django安裝

   使用pip install django==1.11.11安裝Django

   當下載完成後,可以使用django-admin來檢視是否安裝成功

C:\Users\雲崖先生>django-admin

Type 'django-admin help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver
Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).

常用命令

   第一次接觸Django,這裡有一些常用的CMD命令

基本命令解釋說明
django-admin startproject 專案名稱 建立一個Django專案
python manage.py startapp 應用名稱 建立一個APP
python manage.py runserver ip地址 port號 執行Django專案,如不指定IP與PORT預設為127.0.0.1與8000
python manage.py makemigrations 建立資料庫的py檔案,即模型表
python manage.py migrate 將生成的py檔案模型表同步應用到資料庫
python manage.py flush 資料庫中資料全部清除,只留下表
python manage.py createsuperuser 建立管理員使用者,密碼(郵箱可以留空)
python manage.py changepassword 使用者名稱 修改管理員使用者密碼

注意事項

   使用Django時,有以下幾條建議

   1.計算機名稱不能包含中文

   2.IDE中一個視窗只開一個專案

   3.專案中所有資料夾均不要使用中文

   4.Python直譯器請按照與之相對的Django版本進行選擇,我這裡使用Python3.6.6

   5.如果你使用GoogleChorme瀏覽器,強烈建議勾選上設定中的Disable cache(while DevTools is open)選項。具體設定流程:F12開啟開發者工具,點選開發者工具欄上的小齒輪,找到Network選項下的設定項即可。

目錄介紹

   接下來我們使用命令列創建出一個新的Django專案。

django-admin startproject Perfect 

   然後再新建一個APP,在Django中每一個 APP都相當於一個功能的集合,如有處理學生相關的業務就建立一個名為studentAPP,老師相關的業務就建立一個名為teacherAPP

python manage.py startapp app01  # 注意在此之前要cd進專案根目錄

   目錄如下:

-- PERFECT	專案資料夾

	-- app01	應用資料夾
		-- migrations.py		資料庫遷徙檔案
		-- admin.py 			django後臺管理
		-- apps.py				註冊相關
		-- models.py			資料庫相關(ORM類)
		-- tests.py				測試檔案
		-- views.py				檢視相關函式
		
	-- Perfect	專案全域性資料夾
		-- settings.py			全域性配置檔案
		-- urls.py				路由檢視關係
		-- wsgi.py				wsgiref模組(Django基於該模組)
		
	-- manage.py 入口檔案
	-- sqlite3	 自帶微型資料庫(可有可無)

   這個時候我們應該做一件事,在專案根目錄下新建一個templates資料夾,用於存放HTML文件。

   (如果你是使用Pycharm進行建立Django專案可忽略這一步)

配置檔案

   開啟專案全域性資料夾下的settings.py,認識一下各個元件及其功能。

"""
Django settings for Perfect project.

Generated by 'django-admin startproject' using Django 1.11.11.

For more information on this file, see
https://docs.djangoproject.com/en/1.11/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.11/ref/settings/
"""

import os

# 像這樣在專案內部構建路徑:os.path.join(BASE_DIR,...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# 快速啟動開發設定-不適合生產
# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/

# SESSION相關的金鑰,上線之後一定要保密
SECRET_KEY = 'm00e=*1gwly+6$&_g=tk&rd)lu8p-v_)1k(y&@7p_xn663$ph#'

DEBUG = True # DEBUG資訊,會給提示,上線後改為False即可

ALLOWED_HOSTS = [] # 允許訪問的主機,上線後改為 ["*"]


# 註冊的APP,新建一個APP後需要進行手動配置
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

# 中介軟體,新手玩家請註釋掉  'django.middleware.csrf.CsrfViewMiddleware',
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'Perfect.urls'

# HTML檔案存放路徑配置
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        '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',
            ],
        },
    },
]

WSGI_APPLICATION = 'Perfect.wsgi.application'


# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
# 專案指定用的資料庫,可以自行修改。預設使用sqlite3
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}


# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
# 認證相關
AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/1.11/topics/i18n/

LANGUAGE_CODE = 'en-us' # 語言

TIME_ZONE = 'UTC' # 時區

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/

# 靜態檔案,尤其重要
STATIC_URL = '/static/'

手動配置

   好了,在建立完APP後需要在配置檔案中進行一些手動配置,分別是註冊APP,拼接HTML文件路徑,這兩個是必須的。此外還可選擇性對csrf驗證中介軟體進行註釋,以及配置資料庫連結,配置靜態檔案等等。

   這些都放在後面會說,後面會單獨開一章settings的文章來具體寫各個部分的用途。

   注意:如果使用Pycharm進行建立可忽略註冊APP與拼接HTML文件路徑,這些Pycharm都會幫你自動做好,但是還是建議你看一眼。

註冊APP

   註冊APP非常簡單,只需要在配置檔案中找到下面的位置新增上上下面一條資訊即可。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',
]

   也可以進行簡寫

'app01',

HTML路徑

   拼接HTML文件路徑也是在配置檔案中新增。

   以下示例中templates是我對存放HTML文件的資料夾取的名字,推薦使用這個名字。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,"templates")],  # 在這裡新增上 os.path.join(BASE_DIR,"templates")
        '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',
            ],
        },
    },
]

啟動Django

   上面的基礎工作做完之後,可以嘗試啟動一下Django服務了,但是為了體現效果這裡還是超出範疇的寫一點東西。

   返回一個簡單的登入頁面吧,這裡不涉及資料庫,靜態檔案等操作,所以你要做的就只有3步

   1.配置路由,

   2.配置一個檢視函式,

   3.寫一個頁面

配置路由

   配置路由的作用在於對不同的請求路徑進行處理,返回不同的頁面,這裡面其實也有很多知識點,先不涉及做個簡單的。

   在專案全域性資料夾下,開啟urls.py,匯入一下app01views.py,再插入一條程式碼。

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

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r"^login/",views.login),  # 新增程式碼
]

編寫函式

   現在就可以做一下app01下的views.py中的內容了,由於路由裡對於http://127.0.0.1:8000/login的請求處理函式是login,所以我們需要寫一個login函式來進行處理。

from django.shortcuts import render

# Create your views here.
def login(request):
    return render(request,"login.html") # 必須返回request

頁面編寫

   上面的請求處理函式返回了一個login.html,這裡其實就是返回的templates中的HTML文件,可惜我們現在還沒有login.html,所以新建一個即可。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            list-style: none;
        }
        
        body {
            width: 100vw;
            height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        body main form{
            padding: 5px;
            border: #ddd solid 1px;
            background: #eee;

        }
        body main form p{
            margin: 10px;
        }
    </style>
</head>

<body>
    <main>
        <form action="#">
            <p><input type="text" name="username" placeholder="請輸入您的使用者名稱"></p>
            <p><input type="password" name="password" placeholder="請輸入您的密碼"></p>
            <p><button type="submit" disabled>提交</button></p>
        </form>
    </main>
</body>

</html>

結果測試

   現在將開啟Django服務進行測試操作

python manage.py runserver

   看下圖,已經成功到訪問到了頁面,其實所有的Web框架流程無非就是解析請求資源,處理資料,返回HTML文件這三步驟。

相關推薦

Django 入門介紹

Django介紹    Django框架是PythonWeb三大主流框架之一,以其功能強大全面而受到眾多開發者追捧,現如今Django已經更新到3版本,但是並不推薦使用,更多建議使用1版本。 Django版本Python版本 1.11 2.7、3.4、3.5、3.6、3.7(在1.11.17中新增)

Django入門系列之(Django簡介和rom簡單介紹)

1 django中app的概念: 大學:----------------- 專案 資訊學院 ----------app01 物理學院-----------app02 ****強調***:建立了app,要在配置檔案中註冊 ...2 模板路徑配置: 1 templates資料夾 2 settings裡註冊一下 3

DJANGO入門系列之(模板層的簡單介紹和視圖層的掃尾)

dir 解析 http eth endif () 查詢 文件上傳 lte 昨日回顧:1 虛擬環境 -1 pycharm裏創建 -2 用命令串講2 視圖層: 1 Request對象---GET,POST,method,body,FILES,META,path(只是

python16_day15【Django入門

response 最簡 ext tcp inf star -1 解析 為我 一、Django基本 1.什麽是框架   框架,即framework,特指為解決一個開放性問題而設計的具有一定約束性的支撐結構,使用框架可以幫你快速開發特定的系統,簡單地說,就是你用別人搭建好的舞臺

Django入門

== rtp .cn 如果 admin .exe 系統 pts django Django Web 框架來做Web(接口)開發,資源豐富。 官方建議在Python3 的最新版本下使用Django。 Django 官方網站:https://www.djangoproject.

Django入門一之安裝

路徑 pac 是否 code mage 添加 django 技術 src 1. 習慣性的創建虛擬環境 # 由於我安裝也安裝了pyhton3所以在前面要加python2 -m F:\Python Script\MyVirtualenv>python2 -m virtu

Django入門之數據庫相關

script web 數據庫文件 字段 python代碼 pan wid django 數據庫 1. 數據庫設置 在settings.py中配置數據庫 我首先使用的是sqlite3,所以配置如下 2. 數據庫的數據結構定義   #blog/models.py #定義了

百度地圖api入門介紹(js篇)

顯示 .com cnblogs androi web 入門介紹 步驟 api 地圖api 最近因為用到了百度地圖的api,感覺還有點用記錄一下,一方面充實一下自己,第二也希望有用到的同學可以參考一下;因為之前用過android baidu api 所以再用web

Struts2入門介紹(二)

輸入 clu ons dom 訪問路徑 訪問 filter pri locale 一、Struts執行過程的分析。   當我們在瀏覽器中輸入了網址http://127.0.0.1:8080/Struts2_01/hello.action的時候,Struts2做了如下過程:

13.django入門01(django入門初探視圖,模板,路由)

python django 一、django的基本使用流程。pip install django #安裝django創建一個project: django-admin startproject mysite---mysite ---settings.py ---ur

Seajs使用實例入門介紹

方法調用 由於 ams 來講 標簽 href change lis targe seajs是啥,可以看看這篇前端模塊化(CommonJs,AMD和CMD) 本文所用例子的代碼目錄結構: seajs example |--sea-module //存在依

[Python爬蟲] 在Windows下安裝PhantomJS和CasperJS及入門介紹(上)

支持 包括 load node webpage 函數 cas examples ctr 最近在使用Python爬取網頁內容時,總是遇到JS臨時加載、動態獲取網頁信息的困難。例如爬取CSDN下載資源評論、搜狐圖片中的“原圖”等,此時嘗試學習Phantomjs和

django入門 -- 簡單流程

告訴 內容 演示 數據表 uestc 通過 多種方式 去除 屬性 django入門 -- 簡單流程 這裏簡單的演示完成一個 django 大概流程,後面會有詳細解釋 搭建開發環境 以下使用的是 ubuntu 系統 在生產環境中,有的時候,我們開發的

2.Redis 入門介紹

連接不上 解壓 linux下 基於 保持 守護進程 數據結構 tin 基於內存 A)入門概述:   1.是什麽:     Redis:REmote Dlctionary Server(遠程字典服務器)     是完全開源免費的,用C語言編寫的,遵循BSD協議,是一個高性

服務網關zuul之一:入門介紹

cse 服務註冊 總結 測試的 ext 消費 簡單的 ase 功能 通過之前幾篇Spring Cloud中幾個核心組件的介紹,我們已經可以構建一個簡略的(不夠完善)微服務架構了。比如下圖所示: 我們使用Spring Cloud Netflix中的Eureka實現

Django入門1

amp comm template create home ise authent min ict 一、安裝  Python安裝:pip install django    安裝完成後會在Python的安裝目錄下的"/Scripts"下面出現兩個新文件,分別是django-

Django入門2:路由系統

-c clas sdfas ret war 3-0 生成 實例 eee 1、單一路由對應   url(r‘^index/‘, views.index), # FBV   url(r‘^home/‘, views.Home.as_view()), # CBV

Django入門4: ORM 數據庫操作

content ins migration rst 小數類型 tro edi .py 根據 大綱 一、DjangoORM 創建基本類型及生成數據庫表結構 1、簡介 2、創建數據庫 表結構 二、Django ORM基本增刪改查 1、表數據增刪改查 2、表結構修改 三、Djan

Django入門 -- 框架操作基本流程

入門 django -- 入門# Django開發流程: # 1.創建虛擬環境; # 2.安裝django; # 3.創建項目; # 4.創建應用; # 5.在models.py中定義模型類,為視圖提供數據; # 6.定義視圖,處理瀏覽器請求 # 7.配置URL # 8.創建模板,呈現數據-- 虛擬環

django---入門

序列 遍歷 ans 產生 優秀 matching n) exp 所有 MTV模型 Model(模型):對數據進行操作 Template(模板) View(視圖):負責業務邏輯 django:   urls:路徑與視圖函數的映射關系