您好,登錄后才能下訂單哦!
閱讀文本大概需要 5 分鐘。
上次 2 篇文章給大家分享了 Django 搭建的基本知識,今天就把 Django 基本知識串起來,搭建一個簡單的博客網(wǎng)站。
語言:Python 3.6
編輯器:Pycharm
創(chuàng)建項目
創(chuàng)建 APP
創(chuàng)建跳轉路由
定義博客模塊
同步數(shù)據(jù)庫
訪問Django后臺
配置后臺字段
修改頁面視圖
博客展示
Djagon 安裝和環(huán)境搭建前兩篇文章講得比較詳細,本文不會細講,還沒上車的請點擊下方鏈接:
Python框架Django入門:環(huán)境及項目搭建
Python框架Django:頁面渲染和數(shù)據(jù)庫應用
創(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 應用。
創(chuàng)建好后項目目錄結構如下
在 mysite/urls.py 中定義兩個鏈接跳轉路由,一個是管理后臺的 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 類,在類里面定義博客的標題、內容、創(chuàng)建時間。
from django.db import models
# Create your models here.
class Blog(models.Model):
title = models.CharField(max_length=150) # 博客標題
body = models.TextField() # 博客內容
timestamp =models.DateTimeField() # 博客創(chuàng)建時間
數(shù)據(jù)庫信息有修改的話我們需要通過以下兩個命令對它進行同步。(左右滑動查看全部代碼)
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ù)庫應用 分享過如何創(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)建好超級管理員賬號和密碼后,啟動服務后就可以登錄了。
為了方便在后臺對剛定義的三個字段進行可視化修改,我們在 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 命令啟動服務。
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/ 就可以自定義剛才的新增的三個字段了,輸入內容后,點擊下方 SAVE 按鈕保存內容。
1、我先在 blog 目錄里新建一個 templates 文件夾,在此文件夾里新建 index.html 文件。為了讓頁面看起來炫酷些,我們可以去 Bootstrap 看看,Bootstrap 是一個前端開發(fā)框架,在官網(wǎng)可以找到相應的前端框架實例 ,右鍵查看源碼,復制過來就好。我選擇了一個比較簡單的模板,模板地址:https://v3.bootcss.com/examples/starter-template/ ,把源代碼復制過來放在 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頁面
最后通過命令啟動服務,打開 blog 網(wǎng)站,就可以看到我們自己定義的視圖和內容了。
這樣,一個簡易的博客模型就出來了,后面再根據(jù)自己的需求對博客進行優(yōu)化,比如,博客內容的格式優(yōu)化,增加博客評論系統(tǒng)等等。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。