ITPub博客

用Django框架快速搭建博客

原创 Python 作者:brucepk 时间:2018-11-09 14:29:25 0 删除 编辑

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

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

项目环境

语言:Python 3.6

编辑器:Pycharm

主要步骤

  • 创建项目

  • 创建 APP

  • 创建跳转路由

  • 定义博客模块

  • 同步数据库

  • 访问Django后台

  • 配置后台字段

  • 修改页面视图

  • 博客展示

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

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

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

创建项目

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

django-admin startproject mysite

创建 APP

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

python3 manage.py startapp blog

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

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

创建跳转路由

在 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 中创建模块,定义一个 Blog 类,在类里面定义博客的标题、内容、创建时间。

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()           # 博客创建时间

同步数据库

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

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

访问Django后台

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

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.

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

配置后台字段

为了方便在后台对刚定义的三个字段进行可视化修改,我们在 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 012018 - 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 是一个前端开发框架,在官网可以找到相应的前端框架实例 ,右键查看源码,复制过来就好。我选择了一个比较简单的模板,模板地址:https://v3.bootcss.com/examples/starter-template/ ,把源代码复制过来放在 index.html 文件里。


2、在 blog/views.py 文件中定义方法去请求数据库中的所有数据并放在 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()  # 获取数据库中所有数据
    return render(request, 'index.html', {'blog_list': blog_list})   # 返回index.html页面

博客展示

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

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31556596/viewspace-2219393/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论
公众号「brucepk」,分享 Python 干货,公众号回复「1024」,你懂的,有惊喜!

注册时间:2018-09-28

  • 博文量
    3
  • 访问量
    1021