開發:Django(1)

一、安裝

sudo pip install Django

二、Verifying(校驗)

>>> import django
>>> print(django.get_version())
1.10

或者
終端 直接輸入:
$ python -m django --version

三、編寫一個Django應用

1、Creating a project

在終端切換到你想要存放源碼的目錄,然後輸入:

django-admin startproject mysite

就會創建一個mysite文件夾,裏面是一些自動生成的源碼。

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

2、運行項目

首先在終端切換到你項目目錄下(outer mysite),然後輸入:

python manage.py runserver

然後輸出:
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.

March 11, 2017 - 15:50:53
Django version 1.10, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

現在你就可以訪問:http://127.0.0.1:8000/

3、修改服務的IP和端口

python manage.py runserver 8080 # 修改端口號
python manage.py runserver 0.0.0.0:8000 # 修改IP


注:自動重新加載服務
Automatic reloading of runserver

The development server automatically reloads Python code for each request as needed. You don’t need to restart the server for code changes to take effect. However, some actions like adding files don’t trigger a restart, so you’ll have to restart the server in these cases.

4、創建APP

在 manage.py 所在的目錄下運行命令:

python manage.py startapp polls

APP目錄結構:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

這樣就在項目裏創建了一個應用。

在 settings.py 的 INSTALLED_APPS 中添加上剛創建的應用的名稱。這個的作用就是:在查找模板的時候,會按照INSTALLED_APPS中的順序查找,如果不指定會報找不到模板的錯誤[ TemplateDoesNotExist ]。

views.py 文件中編寫代碼:

# polls/views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello World!")

在你新創建的應用文件夾下,創建一個 urls.py 文件,然後在 mysite 文件夾下的 urls.py 文件中配置:

# mysite/urls.py

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

urlpatterns = [
    # polls/是 polls這個應用的訪問路徑名稱
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls)
]

在應用下的urls中:

# polls/urls.py

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

urlpatterns = [
    url(r'^$', views.index, name = 'index')
]

當我們訪問 http://127.0.0.1:8000/polls 路徑時就會跳轉到新的頁面。

5、爲應用添加模板

在應用的目錄下新建一個 templates 文件夾,編寫一個html文件,修改:

# polls/views.py

from django.shortcuts import render
from django.http import HttpResponse

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

再次訪問 : http://127.0.0.1:8000/polls 路徑時就會跳轉到index.html。

6、向網頁傳遞數據

# polls/views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return render(request, 'index.html', {'data': 'HELLO, WORLD!'})

7、創建Model

# polls/models.py

# -*- coding:utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# 類繼承 models.Model
class Article(models.Model):
    title = models.CharField(max_length = 32, default = 'Title')
    content = models.TextField(null = True)

在modules.py文件中創建好Model之後,在控制檯輸入命令:

# 準備遷移
python manage.py makemigrations

# 遷移 
python manage.py migrate

# 查看SQL語句
python manage.py sqlmigrate 應用名稱 文件id

先手動向數據庫添加一條數據,查詢並返回數據到頁面:

# polls/views.py

from django.shortcuts import render
from django.http import HttpResponse
from . import models


def index(request):
    article = models.Article.objects.get(pk=1)
    return render(request, 'index.html', {'article': article})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章