軟體環境:
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、新建應用
使用Pycharm的tools選單下的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應用的一般流程。