1. 程式人生 > >Django網路框架使用(二)

Django網路框架使用(二)

Django 建立Hello world

注:

任何一門語言,無論是簡單的,複雜的,易上手的,不易上手的,在你所學的基礎之上能夠創建出第一個“Hello World”,不負責任的說你已經對這個框架或者語言理解了四分之一乃至更多。而後面的你會發現不同語言,不同框架大同小異,但當你深入研究後,又會發現差異是很大的。

因為用慣了VS,在VisualStudio2015以後的版本中,是可以支援python的,且非常方便下載和更新一些常用包,所以我將在VS中使用python3(不建議用Anaconda3)完成 Django框架的使用

當然,你也可以選用多數人使用的PyCharm,不建議使用自帶IDLE

首先我們新建一個專案

專案建設

選擇空Django Web專案,點選確定
此時建立會讓你安裝包
安裝包

如果你已經在你的電腦上安裝好了包,點選我自己安裝

然後檢視你的python預設環境中是否有Django的包
包

若有顯示此包,那麼就說明此時你已經安裝好了Django,不需要再配置

若你沒有安裝Django包,也不想嘗試終端輸入.

那麼你可以使用‘安裝到虛擬環境’,此時載入的包只對此專案可用,但這時候的專案方便移植不同平臺。

env

當你進入env時,你會看到一些檔案都已幫你自動載入進去了

不建議使用所有專案共享,他會幫你重新下載一個Django,版本會衝突,導致你每次新建專案都得下載一遍。

建立完成後我們可以檢視專案的目錄結構:

文件結構

└─DjangoWebProject3
    │  DjangoWebProject3.pyproj
    │  manage.py
    │  requirements.txt
    │
    └─DjangoWebProject3
            settings.py
            urls.py
            wsgi.py
            __init__.py

目錄說明:

DjangoWebProject3 `` 專案容器
DjangoWebProject3.pyproj 識別為VS所建立的專案

manage.py“ 命令列工具,可讓你以不同方式與該 Django 專案進行互動

內容:

#!/usr/bin/env python
"""
Command-line utility for administrative tasks.(命令列程式)
"""
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault(
        "DJANGO_SETTINGS_MODULE",
        "DjangoWebProject3.settings"
    )

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

DjangoWebProject3/__init__.py 空檔案,識別該目錄是一個 Python 包。
DjangoWebProject3/settings.py 該 Django 專案的設定/配置。
DjangoWebProject3/urls.py 該 Django 專案的 URL 宣告; 一份由 Django 驅動的網站”網址目錄”。
DjangoWebProject3/wsgi.py一個 WSGI 相容的 Web 伺服器的入口,以便執行你的專案。

此時點選執行,會出現一個命令視窗,顯示你需要遷移一些東西

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
November 19, 2017 - 10:22:40
Django version 1.11.7, using settings 'DjangoWebProject1.settings'
Starting development server at http://127.0.0.1:54636/
Quit the server with CTRL-BREAK.

此時執行埠隨機
所以此時需要在此目錄下執行cmd,寫入

python manage.py migrate

將所需東西遷入

或者你可以

在 專案目錄中可用命令列輸入以下命令,啟動Django伺服器:

python manage.py runserver 0.0.0.0:8000

0.0.0.0 ipv4 預留地址,指代所有地址,8000 為埠號(預設埠)。

在瀏覽器輸入你伺服器的ip及埠號,如果正常啟動,輸出結果如下:
案例

檢視和 URL 配置

在先前建立的 web專案目錄下的web目錄中新建一個 view.py 檔案
寫入程式碼:


from django.http import HttpResponse

def ser():
    return HttpResponse("Hello World!");

繫結 URL 與檢視函式。

開啟 urls.py 檔案
將以下程式碼寫到 urls.py 檔案中:

from django.conf.urls import include, url
from  . import view # 從同級目錄匯入
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = [
    # Examples:
    # url(r'^$', Web1.views.home, name='home'),
    # url(r'^Web1/', include('Web1.Web1.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),
    url(r'^$' , view.ser),
]

我們也可以修改訪問路徑:
urls.py 修該 urlpatterns程式碼:

urlpatterns = [
    url(r'^index$', view.ser),
]

**專案中如果程式碼有改動,伺服器會自動監測程式碼的改動並自動重新載入
如果你已經啟動了伺服器則不需手動重啟。**

include()函式

include()允許引用其他URLconf。
include()函式的正則表示式沒有$(字串尾部匹配字元),而是一個尾部斜線。
每當Django遇到include()時,它將切割與該點匹配的URL的任何部分,並將剩餘的字串傳送到包含的URLconf以供進一步處理。
include()的想法是使插入和使用URL變得容易。
例:
若在專案中存在URLconf(polls/ urls.py)
那麼當擷取polls時,可以放在“/polls/”下,或在“/ fun_polls /”下,或“/ content / polls /”或任何其他路徑的根,應用程式將仍然工作

url() 函式

url() 可以接收四個引數

兩個必選引數:regex、view
regex: 正則表示式,與之匹配的 請求URL 會執行對應的第二個引數 view的東西。
django從第一個正則表示式開始,並在列表中向下,將請求的URL與每個正則表示式進行比較,直到找到匹配的正則表示式。
請注意,這些正則表示式不搜尋GET和POST引數或域名。
例如,在https://www.example.com/myapp/的請求中,URLconf將查詢 myapp /。
https://www.example.com/myapp/?page=3的請求中,URLconf也會查詢myapp /。

view: 用於執行 處理正則表示式匹配的 URL 請求的模組。

兩個可選引數:kwargs、name
kwargs: 檢視使用的字典型別的引數。
name: 用來反向獲取 URL,並賦給name值

附:

命令列通過 django-admin.py來建立一個專案:
此檔案在python33的Script下
位置

django-admin.py的命令介紹:

[[email protected] ~]# django-admin.py
Usage: django-admin.py subcommand [options] [args]

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings=SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath=PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on exception
  --version             show program's version number and exit
  -h, --help            show this help message and exit

建立第一個專案

使用 django-admin.py 來建立 HelloWorld 專案:

django-admin startproject mysite

部分來自官網翻譯,翻譯有誤,請及時聯絡我。。。

相關推薦

Django框架—— 基本配置:app註冊、模板配置、靜態檔案配置、資料庫連線配置post和get

app註冊、模板配置、靜態檔案配置、資料庫連線配置post和get 一、app 在Django中,APP可以用以下類比 大學 --------------------專案 計算機學院------------app01 土木學院 ------------ app02 1、app建立 方

Struts2框架 Web.xml, Struts.xml, Action.Java 基本配置

str web.xml images ava img ima blog XML ges Struts2框架(二) Web.xml, Struts.xml, Action.Java 基本配置

javascript運動框架

rip asc oat 對象 obj func 我想 lac 我們 緊接著上面寫的... 給div加一個邊框,border:1px solid black window.onload = function(){ var div = document.getEle

教你寫Http框架——三個樣例帶你深入理解AsyncTask

func implement oncreate 其它 層疊 worker dcl 例如 人員 這個標題大家不要奇怪,扯Http框架怎麽扯到AsyncTask去了,有兩個原因:首先是Http框架除了核心http理論外。其技術實現核心也是線程池 + 模板 +

Java基礎學習筆記十六 集合框架

first 哈希 cat etag 基於 col 容器 處的 新元素 List List接口的特點: 它是一個元素存取有序的集合。例如,存元素的順序是11、22、33。那麽集合中,元素的存儲就是按照11、22、33的順序完成的。 它是一個帶有索引的集合,通過索引就

很easy的js雙向綁定框架:控制器繼承

rst data 發出 sim 跟著 cti exec mar spa 初衷 上一篇已經實現了數據的雙向綁定,但model的控制範圍是整個文檔。在實際project中必需要有作用範圍,以便做ui模塊的拆分。 這一篇,我們希望實現像angularjs一

Android sensor 系統框架

port amp cap 錯誤 str 註釋 hardware war cas 連載上一篇http://www.cnblogs.com/hackfun/p/7327320.html (D) 如何加載訪問.so庫 在前一篇博客http://www.cnblogs.co

集合框架

成員 線程 aslist 建議 元素 nds 還得 編譯期 line List的子類(掌握) 1、List的子類特點 ArrayList: 底層數據結構是數組,查詢快,增刪慢 線程不安全,效率高 Vector: 底層數據結構是數組,查詢快,

spring框架

面向 int 動態代理 實現 訪問修飾符 spring pat 應用 tco Spring的bean管理(註解)   1、代碼裏面特殊標記,使用註解可以完成相應功能   2、註解寫法@註解名稱(屬性名稱=屬性值)   3、類,方法,屬性(註解使用) spring註解開

一個只有99行代碼的JS流程框架

經驗 itl 兩個 ron timeout 當前 str mmu second 歡迎大家關註騰訊雲技術社區-博客園官方主頁,我們將持續在博客園為大家推薦技術精品文章哦~ 張鎮圳,騰訊Web前端高級工程師,對內部系統前端建設有多年經驗,喜歡鉆研搗鼓各種前端組件和框架。 導

UEFI中EHCI驅動的實現框架

urb link cnblogs 異步傳輸 tro insert 傳輸 frame struct 本文從數據結構的角度看一下EHCI的初始化: 下圖是EHCI驅動中涉及的主要數據結構的關系圖: 1.Struct USB2_HC_DEV是Host controller的核心

利用 Composer 完善自己的 PHP 框架

pass 簡易 cte 郵件接收 ces api cep home ase 回顧 上一篇文章中,我們手工建造了一個簡易的視圖加載器,順便引入了錯誤處理包,讓我們的 MFFC 框架在 M、V、C 三個方面都達到了“好用”的水平。View 是一個可插拔組件,在本篇文章中我們要創

Django中模型

for 唯一值 校驗 允許 小數 如果 git ade 字符長度 Django中模型(二) 三、定義模型 1、模型、屬性、表、字段間的關系: 一個模型類在數據庫中對應一張表;在模型類中定義的屬性,對應該模型對照表中的字段。 2、定義屬性 A、概述

徒手擼出一個類Flask微框架路由及路由註冊的演變

pass nac 等價 themes 字典 lac found round wap 路由的基本概念:根據不同的訪問路徑調用不同的方法或者類from webob import Response,Request,dec from wsgiref.simple_server im

Java源碼解析——集合框架——ArrayBlockingQueue

not 結構 AS ray false 元素 模式 -- ins ArrayBlockingQueue源碼解析 ArrayBlockingQueue是一個阻塞式的隊列,繼承自AbstractBlockingQueue,間接的實現了Queue接口和Collection接口

Windows環境下,從零開始搭建Nodejs+Express+Ejs框架---安裝Express,ejs

所有 nod 環境 安裝目錄 關於 str 列表 ima 執行 安裝Express,ejs的前提是一定要先安裝nodejs,具體安裝方法請查看 http://www.cnblogs.com/tfiremeteor/p/8973105.html 安裝Express和ejs的前

JavaWeb學習之Hibernate框架

utils xtend auto etl SQ dial begin 可選 oct hibernateAPI詳解 Configuration 創建 加載主配置 創建sessionFactory

分布式服務框架

無限 快速 異常 net iyu 成熟 基礎上 管理平臺 感知 一、分布式服務框架其他組成   上一節《分布式服務框架(一)》講述了RPC發展到SOA的過程,常見的SOA服務治理方案,以及分布式系統中常見的專業名詞,這部分其實只是涉及到了一個分布式系統架構的輪廓,真正一個系

Django環境搭建

sql安裝 avi navi htm ip命令 破解 mysql安裝教程 app 三方庫 1、創建應用apitest,項目目錄打開命令窗口輸入:python manage.py startapp apitest(創建應用命令——常用),如下圖: 將apitest

ATK-DataPortal 設計框架

開源中國 mes -- 上下 urn 通用 mar ESS rate 在信息的交換過程中,總是有此相同相似的功能,由於業務的各自不同,由同一類型來處理諸如增刪改查等常見的信息處理方式。從日常的對些類行為操作為生成的類分析,大量雷同的代碼遍布整個項目。框架中xxxHandel