閱讀文本大概需要 5 分鐘。
為老河口等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及老河口網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、老河口網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
上次 2 篇文章給大家分享了 Django 搭建的基本知識,今天就把 Django 基本知識串起來,搭建一個簡單的博客網(wǎng)站。
語言:Python 3.6
編輯器:Pycharm
創(chuàng)建項目
創(chuàng)建 APP
創(chuàng)建跳轉(zhuǎn)路由
定義博客模塊
同步數(shù)據(jù)庫
訪問Django后臺
配置后臺字段
修改頁面視圖
博客展示
Djagon 安裝和環(huán)境搭建前兩篇文章講得比較詳細(xì),本文不會細(xì)講,還沒上車的請點擊下方鏈接:
Python框架Django入門:環(huán)境及項目搭建
Python框架Django:頁面渲染和數(shù)據(jù)庫應(yīng)用
創(chuàng)建 Django 項目有三種方式,具體參考 Python框架Django入門:環(huán)境及項目搭建,常見的方式是在 cmd 中輸入以下命令創(chuàng)建,然后在 Pycharm 中打開此項目目錄。
django-admin startproject mysite
在 Pycharm 下方的 Terminal 終端窗口輸入下面命令創(chuàng)建一個名稱為「blog」的 APP。
python3 manage.py startapp blog
在 mysite/settings.py 中 INSTALLED_APPS 列表里新增 blog 應(yīng)用。
創(chuàng)建好后項目目錄結(jié)構(gòu)如下
在 mysite/urls.py 中定義兩個鏈接跳轉(zhuǎn)路由,一個是管理后臺的 admin,一個是查看博客的 blog。(左右滑動查看全部代碼)
from django.contrib import admin
from django.urls import path
from blog import views
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', views.blog_index),
]
在 blog/models.py 中創(chuàng)建模塊,定義一個 Blog 類,在類里面定義博客的標(biāo)題、內(nèi)容、創(chuàng)建時間。
from django.db import models
# Create your models here.
class Blog(models.Model):
title = models.CharField(max_length=150) # 博客標(biāo)題
body = models.TextField() # 博客內(nèi)容
timestamp =models.DateTimeField() # 博客創(chuàng)建時間
數(shù)據(jù)庫信息有修改的話我們需要通過以下兩個命令對它進(jìn)行同步。(左右滑動查看全部代碼)
F:\djangopjt\mysite>python3 manage.py makemigrations blog
Migrations for 'blog':
blog\migrations\0001_initial.py
- Create model BlogPost
F:\djangopjt\mysite>python3 manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
Applying blog.0001_initial... OK
之前分享的文章中 Python框架Django:頁面渲染和數(shù)據(jù)庫應(yīng)用 分享過如何創(chuàng)建 admin 后臺賬號和密碼,其實也很簡單,一條命令即可創(chuàng)建。
F:\djangopjt\mysite>python3 manage.py createsuperuser
Username (leave blank to use 'guixianyang'): brucepk
Email address: brucepk@main.com
Password:
Password (again):
Superuser created successfully.
創(chuàng)建好超級管理員賬號和密碼后,啟動服務(wù)后就可以登錄了。
為了方便在后臺對剛定義的三個字段進(jìn)行可視化修改,我們在 blog/admin.py 中將剛才定義的三個字段放在列表中。(左右滑動查看全部代碼)
from django.contrib import admin
from blog.models import Blog
# Register your models here.
class BlogsAdmin(admin.ModelAdmin):
list = ['title', 'body', 'timestamp']
admin.site.register(Blog, BlogsAdmin)
通過 runserver 命令啟動服務(wù)。
F:\djangopjt\mysite>python3 manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
November 01, 2018 - 11:12:07
Django version 2.1.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
打開后臺地址 http://127.0.0.1:8000/admin/ 就可以自定義剛才的新增的三個字段了,輸入內(nèi)容后,點擊下方 SAVE 按鈕保存內(nèi)容。
1、我先在 blog 目錄里新建一個 templates 文件夾,在此文件夾里新建 index.html 文件。為了讓頁面看起來炫酷些,我們可以去 Bootstrap 看看,Bootstrap 是一個前端開發(fā)框架,在官網(wǎng)可以找到相應(yīng)的前端框架實例 ,右鍵查看源碼,復(fù)制過來就好。我選擇了一個比較簡單的模板,模板地址:https://v3.bootcss.com/examples/starter-template/ ,把源代碼復(fù)制過來放在 index.html 文件里。
2、在 blog/views.py 文件中定義方法去請求數(shù)據(jù)庫中的所有數(shù)據(jù)并放在 index.html 的樣式中。
from django.shortcuts import render
from blog.models import Blog
# Create your views here.
def blog_index(request):
blog_list = Blog.objects.all() # 獲取數(shù)據(jù)庫中所有數(shù)據(jù)
return render(request, 'index.html', {'blog_list': blog_list}) # 返回index.html頁面
最后通過命令啟動服務(wù),打開 blog 網(wǎng)站,就可以看到我們自己定義的視圖和內(nèi)容了。
這樣,一個簡易的博客模型就出來了,后面再根據(jù)自己的需求對博客進(jìn)行優(yōu)化,比如,博客內(nèi)容的格式優(yōu)化,增加博客評論系統(tǒng)等等。