frist Django app — 一、 建立工程

來源:互聯網
上載者:User

標籤:

緣起

既然python都學了,學習python的時候感覺是相見恨晚,一種新的程式設計語言帶給我一種新的思考問題的方式,為了鞏固學過的東西並進一步學習python,就想學學Django,看看會不會帶給我關於web新的東西。把自己學習過程記錄在這裡,發現每次寫部落格都是對學習過的東西的一次整理和提升。

建立一個projectstartproject

python和Django的安裝不再詳述,我的環境python2.7,Django1.9.7 。

django-admin startproject mysite

上面這句話建立了一個project名稱位mysite,這個名稱是可以修改的,目錄結構如下:

.├── manage.py└── mysite    ├── __init__.py    ├── settings.py    ├── urls.py    └── wsgi.py

對於上面幾個檔案的介紹:

manage.py:與Django進行互動的命令列工具,比如後面根據model產生資料庫表結構、供開發使用的server等都是使用該工具,在manage.py的同級目錄使用python manage.py 可以看到可以使用的命令列表。

mysite:這個才是工程的包名。

__init__.py:表明mysite是一個包。

setting.py:Django的設定檔,包括工程的app配置、資料庫配置、語言配置等。

urls.py:Django的dispatcher,根據不同的url映射到不同的視圖。

wsgi.py:WSGI是web server gateway interface,這個檔案是使project符合這種協議的進入點(entry-point)

runserver
python manage.py runserver

在manage.py的同級目錄下運行這個命令就可以看到以下內容:

Performing system checks...System check identified no issues (0 silenced).You have unapplied migrations; your app may not work properly until they are applied.Run ‘python manage.py migrate‘ to apply them.July 10, 2016 - 09:20:57Django version 1.9.7, using settings ‘mysite.settings‘Starting development server at http://127.0.0.1:8000/Quit the server with CONTROL-C.

說明我們成功建立了一個project,在瀏覽器中輸入 http://127.0.0.1:8000/,看到以下畫面表示成功:

Django內建了一個程式開發伺服器,便於開發使用(Django官方強調不能用作生產環境),預設連接埠號碼是8000,如果想運行在別的連接埠號碼,以下面的方式運行即可,比如:8080

python manage.py runserver 8080
# 如果想在區域網路內其他電腦上訪問你的網站
python manage.py runserver 0.0.0.0:8080

按Ctrl C停止伺服器。

建立一個app

一個project可以又多個app,一個app可以同時屬於多個project。通過以下命令建立一個app(在project目錄下)

django-admin startapp polls

建立app後的目錄結構,因為Django會自動建立一系列檔案,我們需要明白每個為檔案的作用

.├── manage.py├── mysite│   ├── __init__.py│   ├── settings.py│   ├── urls.py│   └── wsgi.py└── polls    ├── admin.py    ├── apps.py    ├── __init__.py    ├── migrations    │   └── __init__.py    ├── models.py    ├── tests.py    └── views.py

polls:app的根目錄

admin.py:Django內建了一個管理介面,這個檔案可以註冊model在介面中管理

__init__.py:表明polls也是一個包

migrations:用來初始化資料庫,在執行python manage.py makemigrations 的時候會自動產生一個檔案在這裡

__init__.py:表明migrations也是一個包

models.py:在這個檔案裡面定義model類

tests.py:寫測試代碼

views.py:視圖,Django映射urls.py裡面的url的時候,在views.py裡面尋找對應的處理方法

添加view

編輯views.py檔案

from django.shortcuts import renderfrom django.http import HttpResponse# Create your views here.def index(request):    return HttpResponse("hello world")
添加映射

在polls目錄下建立urls.py檔案

from django.conf.urls import urlfrom . import viewsurlpatterns = {    url(r‘^$‘, views.index, name = ‘index‘),}

將polls的urls.py告訴django,添加到mysite/urls.py

from django.conf.urls import url, includefrom django.contrib import adminurlpatterns = [    url(r‘^admin/‘, admin.site.urls),    url(r‘^polls/‘, include(‘polls.urls‘)),]

將我們polls包下面的urls.py include進去。大家注意到了polls/urls.py相當於是mysite/urls.py下面的一個子檔案,兩者 的寫法相似,url的第一個參數是一個Regex,第二個參數就是映射到的視圖或者包含的類,注意到原來有一個url(r‘^admin/‘, admin.site.urls),這是Django管理介面的配置,還有就是我們寫的Regex是以polls/開始的url,也就是所有以該首碼開始的url都會被分發到polls/urls裡面進一步尋找對應的視圖。

接下運行server,訪問http://127.0.0.1:8000/polls/就可以看到以下內容——也就是我們在views.py裡面寫的內容

hello world
總結

其實主要就是通過django提供的一些命令我們基本上就完成了一個簡單的hello world,說到了Django的目錄結構,簡單涉及了一些view和url的寫法。

 

代碼位置

http://pan.baidu.com/s/1o84GjVk

frist Django app — 一、 建立工程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.