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


    一、分析功能模块

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

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

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

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

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

    • 进入虚拟环境文件夹cd mysite_env,激活虚拟环境Scriptsactivate

    G:mysite_env>Scriptsactivate
    (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

  • 相关阅读:
    VTK二维图像的三维显示
    VtkTransform 和 SetPosition的区别
    Qt QList 遍历元素
    Qt QList详解
    QT QList介绍及应用
    Qt 生成随机区间浮点数 generateRand
    Qt qsrand qrand 产生随机数的两只方法
    Qt QStringLiteral
    Qt QMap简单用法
    Qt 遍历QMap
  • 原文地址:https://www.cnblogs.com/sjfeng1987/p/11359047.html
Copyright © 2020-2023  润新知