五:Django学习:开始搭建个人博客网站

一、分析功能模块

要创建一个博客,先需要对整体功能模块进行分析,基本的博客网站包括博客,评论,点赞,阅读,以及用户。

  • 博客
    • 博文
    • 博客分类
    • 博客标签
  • 评论
  • 点赞
  • 阅读
  • 用户--> 第三方登陆(QQ/微博)

二、创建虚拟环境,实现项目隔离

  • 安装第三方包virtualenv,使用命令pip install virtualenv

  • 创建一个虚拟环境,使用命令virtualenv mysite_env

  • 进入虚拟环境文件夹cd mysite_env,激活虚拟环境Scripts\activate

G:\mysite_env>Scripts\activate
(mysite_env) G:\mysite_env>

前面的mysite_env表示进入了虚拟环境

ps:退出虚拟环境的命令:deactivate

三、开始初步构建项目

  • 创建项目名mysite,使用命令django-admin startproject mysite
  • 进入项目文件夹cd mysite,创建博客app,使用命令python manage.py startapp blog
  • 编写博文和博客分类模型blog models.py
from django.db import models
from django.contrib.auth.models import User

# Create your models here.

class BlogType(models.Model):
    type_name = models.CharField(max_length=15)

class Blog(models.Model):
    title = models.CharField(max_length=50)
    blog_type = models.ForeignKey(BlogType, on_delete="models.DO_NOTHING")
    content = models.TextField()
    author = models.ForeignKey(User, on_delete="models.DO_NOTHING")
    created_time = models.DateTimeField(auto_now_add=True)
    last_updated_time = models.DateTimeField(auto_now=True)
  • 数据库初始化python manage.py migrate,创建超级用户python manage.py createsuperuser
  • 将应用添加到全局设置中,settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog'
]
  • 创建迁移文件python manage.py makemigrations,同步数据库python manage.py migrate.

  • 注册模型blogs admin.py,以使得后台管理页面能显示博文信息

from django.contrib import admin
from .models import Blog,BlogType

# Register your models here.
@admin.register(BlogType)
class BlogTypeAdmin(admin.ModelAdmin):
    list_display = ('id', 'type_name')

@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
    list_display = ('title', 'blog_type', 'author', 'created_time', 'last_updated_time')
  • 修改后台管理页面为中文显示setttings.py
LANGUAGE_CODE = 'zh-Hans'
  • 启动服务python manage.py runserver,访问后台系统管理页面127.0.0.1:8000/admin

  • 添加Blog类型

  • 添加Blog文章时发现博客类型未显示出来

  • 修改blog models.py文件让博客类型显示
from django.db import models
from django.contrib.auth.models import User

# Create your models here.

class BlogType(models.Model):
    type_name = models.CharField(max_length=15)

    def __str__(self):
        return self.type_name

class Blog(models.Model):
    title = models.CharField(max_length=50)
    blog_type = models.ForeignKey(BlogType, on_delete="models.DO_NOTHING")
    content = models.TextField()
    author = models.ForeignKey(User, on_delete="models.DO_NOTHING")
    created_time = models.DateTimeField(auto_now_add=True)
    last_updated_time = models.DateTimeField(auto_now=True)

    def __str(self):
        return "<Blog: %s>" % self.title

  • 刷新页面,分类正常显示

  • 写第一篇博客


拓展:

安装包的重定向可使用命令pip freeze > requirements.txt

查看requirements.txt文件

要安装requirements.txt文件中的包时,可使用pip install requirements.txt

posted on 2019-08-15 16:56  月见空青  阅读(362)  评论(0编辑  收藏  举报

导航