frist Django app — 1、 建立工程

緣起

既然python都學了,學習python的時候感受是相見恨晚,一種新的編程語言帶給我一種新的思考問題的方式,爲了鞏固學過的東西並進一步學習python,就想學學Django,看看會不會帶給我關於web新的東西。把本身學習過程記錄在這裏,發現每次寫博客都是對學習過的東西的一次整理和提高。python

新建一個project

startproject

python和Django的安裝再也不詳述,個人環境python2.7,Django1.9.7 。web

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 能夠看到可使用的命令列表。django

mysite:這個纔是工程的包名。編程

__init__.py:代表mysite是一個包。瀏覽器

setting.py:Django的配置文件,包括工程的app配置、數據庫配置、語言配置等。服務器

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

wsgi.py:WSGI是web server gateway interface,這個文件是使project符合這種協議的入口點(entry-point)python2.7

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:57
Django 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 render
from django.http import HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("hello world")

添加映射

在polls目錄下新建urls.py文件

from django.conf.urls import url
from . import views

urlpatterns = {
    url(r'^$', views.index, name = 'index'),
}

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

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^polls/', include('polls.urls')),
]

將咱們polls包下面的urls.py include進去。你們注意到了polls/urls.py至關因而mysite/urls.py下面的一個子文件,二者 的寫法類似,url的第一個參數是一個正則表達式,第二個參數就是映射到的視圖或者包含的類,注意到原來有一個url(r'^admin/', admin.site.urls),這是Django管理界面的配置,還有就是咱們寫的正則表達式是以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/1hs7ApwS

相關文章
相關標籤/搜索