Django基礎流程

道霖發表於2018-07-17

軟體環境

Pycharm 2018.1

Python 3.6

Django 2.0.3

 

1、新建專案

直接使用Pycharm的選單來建立專案,命名為mysite

mysite

  mysite

    __init__.py

    settings.py

    urls.py

    wsgi.py

  templates

  manage.py

 

2、新建應用

使用Pycharmtools選單下的Run manage.py Task,在彈出的視窗中輸入以下命令:

startapp blog

blog

  migrations

  __init__.py

  admin.py

  apps.py

  models.py

  tests.py

  views.py

 

3、將blog應用加到setting.py檔案中的INSTALLED_APPS

INSTALLED_APPS = [

  `blog`,

]

 

4、編寫第一個Model

編輯blog下的models.py檔案,輸入:

from django.db import models


class BlogPost(models.Model):
    title = models.CharField(max_length=150)
    body = models.TextField()
    timestamp = models.DateTimeField()

    class Meta:
        ordering = [`-timestamp`]

 

5、設定資料庫

一般使用預設的sqlite即可,也可以使用mysql。在settings.py中設定。

 

6、建立表

Run manage.py Task中分別執行:

makemigrations

migrate

可以看到表被生成了。

 

7、建立超級使用者(用於登入admin平臺)

Run manage.py Task中執行如下命令:

createsuperuser

依次輸入使用者名稱,郵箱,密碼即可。

 

8、註冊BlogPost應用

為了在admin管理平臺上直接新增、刪除文章,我們需要編輯admin.py檔案:

from django.contrib import admin

from blog.models import BlogPost


class BlogPostAdmin(admin.ModelAdmin):
    list_display = [`title`, `timestamp`]

admin.site.register(BlogPost, BlogPostAdmin)

 

9、啟動web伺服器

訪問http://127.0.0.1/admin

輸入使用者名稱密碼即可。

 

10、建立部落格的展示頁面

blog目錄下新建templates目錄,然後在templates目錄下新建archive.html檔案。

{% for post in posts %}
    <h2>{{ post.title }}</h2>
    <p>{{ post.timestamp | date }}</p>
    <p>{{ post.body }}</p>
{% endfor %}

 

11、建立檢視函式

from django.template import loader
from django.http import HttpResponse
from blog.models import BlogPost


def archive(request):
    posts = BlogPost.objects.all()
    t = loader.get_template(`archive.html`)
    return HttpResponse(t.render({`posts`: posts}))

 

12、配置URL路徑

先修改總URL檔案:專案下的urls.py檔案,與settings.py同級。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path(`admin/`, admin.site.urls),
    path(`blog/`, include(`blog.urls`))
]

 

然後修改子URL檔案:應用blog下的urls.py檔案,沒有就新建,與views.py同級。

from blog.views import archive
from django.urls import path

urlpatterns = [
    path(``, archive)
]

 

13、啟動web伺服器,檢視效果

 

14、編寫基礎模板,讓其他模板來繼承

templates下新建base.html檔案,內容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>基礎頁面</title>
    <style type="text/css">
        body {
            color: #efd;
            background: #453;
            padding: 0 5em;
            margin: 0;
        }
        h1 {
            padding: 2em 1em;
            background: #675;
        }
        h2 {
            color: #bf8;
            border-top: 1px dotted #fff;
            margin-top: 2em;
        }
        p {
            margin: 1em 0;
        }
    </style>
</head>
<body>
    <h1>mysite.example.com</h1>
    {% block content %}
    {% endblock %}
</body>
</html>

 

15、重新修改archive.html檔案

{% extends `base.html` %}
{% block content %}
    {% for post in posts %}
        <h2>{{ post.title }}</h2>
        <p>{{ post.timestamp}}</p>
        <p>{{ post.body }}</p>
    {% endfor %}
{% endblock %}

 

16、模板中的過濾器

<p>{{ post.timestamp | date }}</p>

管道後面通過date函式來進行過濾。

 

17、啟動web伺服器,檢查效果

 

以上就是使用django開發web應用的一般流程。

相關文章