阅读文本大概需要 5 分钟。

上次 2 篇文章给大家分享了 Django 搭建的基本知识,今天就把 Django 基本知识串起来,搭建一个简单的博客网站。

项目环境

语言:Python 3.6

编辑器:Pycharm

主要步骤

创建项目

创建 APP

创建跳转路由

定义博客模块

同步数据库

访问Django后台

配置后台字段

修改页面视图

博客展示

Djagon 安装和环境搭建前两篇文章讲得比较详细,本文不会细讲,还没上车的请点击下方链接:

Python框架Django入门:环境及项目搭建

Python框架Django:页面渲染和数据库应用

创建项目

创建 Django 项目有三种方式,具体参考 Python框架Django入门:环境及项目搭建,常见的方式是在 cmd 中输入以下命令创建,然后在 Pycharm 中打开此项目目录。

django-adminstartprojectmysite
创建 APP

在 Pycharm 下方的 Terminal 终端窗口输入下面命令创建一个名称为「blog」的 APP。

python3manage.pystartappblog

在 mysite/settings.py 中 INSTALLED_APPS 列表里新增 blog 应用。

创建好后项目目录结构如下

创建跳转路由

在 mysite/urls.py 中定义两个链接跳转路由,一个是管理后台的 admin,一个是查看博客的 blog。(左右滑动查看全部代码)

fromdjango.contribimportadmin
fromdjango.urlsimportpath
fromblogimportviews

urlpatterns=[
path('admin/',admin.site.urls),
path('blog/',views.blog_index),
]
定义博客模块

在 blog/models.py 中创建模块,定义一个 Blog 类,在类里面定义博客的标题、内容、创建时间。

fromdjango.dbimportmodels

#Createyourmodelshere.


classBlog(models.Model):
title=models.CharField(max_length=150)#博客标题
body=models.TextField()#博客内容
timestamp=models.DateTimeField()#博客创建时间
同步数据库

数据库信息有修改的话我们需要通过以下两个命令对它进行同步。(左右滑动查看全部代码)

F:\djangopjt\mysite>python3manage.pymakemigrationsblog
Migrationsfor'blog':
blog\migrations\0001_initial.py
-CreatemodelBlogPost

F:\djangopjt\mysite>python3manage.pymigrate
Operationstoperform:
Applyallmigrations:admin,auth,blog,contenttypes,sessions
Runningmigrations:
Applyingblog.0001_initial...OK
访问Django后台

之前分享的文章中Python框架Django:页面渲染和数据库应用分享过如何创建 admin 后台账号和密码,其实也很简单,一条命令即可创建。

F:\djangopjt\mysite>python3manage.pycreatesuperuser
Username(leaveblanktouse'guixianyang'):brucepk
Emailaddress:brucepk@main.com
Password:
Password(again):
Superusercreatedsuccessfully.

创建好超级管理员账号和密码后,启动服务后就可以登录了。

配置后台字段

为了方便在后台对刚定义的三个字段进行可视化修改,我们在 blog/admin.py 中将刚才定义的三个字段放在列表中。(左右滑动查看全部代码)

fromdjango.contribimportadmin
fromblog.modelsimportBlog

#Registeryourmodelshere.


classBlogsAdmin(admin.ModelAdmin):
list=['title','body','timestamp']


admin.site.register(Blog,BlogsAdmin)

通过 runserver 命令启动服务。

F:\djangopjt\mysite>python3manage.pyrunserver
Performingsystemchecks...

Systemcheckidentifiednoissues(0silenced).
November01,2018-11:12:07
Djangoversion2.1.1,usingsettings'mysite.settings'
Startingdevelopmentserverathttp://127.0.0.1:8000/
QuittheserverwithCTRL-BREAK.

打开后台地址 http://127.0.0.1:8000/admin/ 就可以自定义刚才的新增的三个字段了,输入内容后,点击下方 SAVE 按钮保存内容。

修改页面视图

1、我先在 blog 目录里新建一个 templates 文件夹,在此文件夹里新建 index.html 文件。为了让页面看起来炫酷些,我们可以去 Bootstrap 看看,Bootstrap 是一个前端开发框架,在官网可以找到相应的前端框架实例 ,右键查看源码,复制过来就好。我选择了一个比较简单的模板,模板地址:https://v3.bootcss.com/examples/starter-template/ ,把源代码复制过来放在 index.html 文件里。


2、在 blog/views.py 文件中定义方法去请求数据库中的所有数据并放在 index.html 的样式中。

fromdjango.shortcutsimportrender
fromblog.modelsimportBlog

#Createyourviewshere.


defblog_index(request):
blog_list=Blog.objects.all()#获取数据库中所有数据
returnrender(request,'index.html',{'blog_list':blog_list})#返回index.html页面
博客展示

最后通过命令启动服务,打开 blog 网站,就可以看到我们自己定义的视图和内容了。

这样,一个简易的博客模型就出来了,后面再根据自己的需求对博客进行优化,比如,博客内容的格式优化,增加博客评论系统等等。