07构建个人博客网站

技术交流QQ群:1027579432,欢迎你的加入!

本教程来源于B站杨仕航Django2.0开发视频教程,如需转载,必须注明来源!
1.简单构建
  • 网站的功能模块约等于Django App
    • 博客
      • 博文
      • 博客分类
      • 博客标签
    • 评论
    • 阅读
    • 用户 -->第三方登录(QQ或者微博)
    • 点赞
2.开启本地虚拟环境
  • 隔离python项目的运行环境:pip install virtualenv
    • 避免多个项目之间python库的冲突
    • 完整便捷导出python的列表
3.virtualenv的使用方法
  • 创建: virtualenv mysite_env(虚拟环境名)
  • 启动: Scripts文件目录下,执行activate
  • 退出:执行deactivate
  • 安装Django2.0:pip install Django==2.0
4.初步创建blog应用
  • 博文 + 博客分类(一篇博客属于一种类型[本教程采用这种],一篇博客属于多种类型)
  • 创建项目:启动虚拟环境后,执行django-admin startproject mysite
  • 创建应用:mysite文件目录下执行,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)
        context = 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)
    
    
  • 对数据库进行初始化:在mysite文件夹下,执行python manage.py migrate
  • 创建管理员账户和登录密码:在mysite文件夹下,执行python manage.py createsuperuser
    E:\Django\mysite_env\Scripts\mysite
    $ python manage.py createsuperuser
    Username (leave blank to use 'administrator'): CurryCoder
    Email address:
    Password:
    Password (again):
    Superuser created successfully.
    
  • 将刚刚创建的应用blog加入到全局配置文件settings.py中,如下所示:
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
    ]
    
  • 创造迁移文件:在mysite文件夹下,执行python manage.py makemigrations,如下所示:
    E:\Django\mysite_env\Scripts\mysite
    $ python manage.py makemigrations
    Migrations for 'blog':
      blog\migrations\0001_initial.py
        - Create model Blog
        - Create model BlogType
        - Add field blog_type to blog
    
  • 对数据库进行同步:在mysite文件夹下,执行python manage.py migrate,如下所示:
    E:\Django\mysite_env\Scripts\mysite
    $ python manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, blog, contenttypes, sessions
    Running migrations:
      Applying blog.0001_initial... OK
    
  • 注册模型:打开blog文件夹下的admin.py文件,添加如下内容:
    from django.contrib import admin
    from .models import BlogType, Blog
    
    # 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')
    
  • 打开全局配置文件settings.py,将当中的LANGUAGE_CODE变量值改为’zh-Hans’,此时已对后台管理页面进行了汉化。
  • 启动本地服务:python manage.py runserver,打开浏览器,输入网址localhost:8000/admin进入后台管理页面。
  • 当新增博文时,无法显示blog_type博文类型,如下所示。因此需要打开blog文件夹下的models.py文件,添加__str()__方法,如下内容所示:
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)
    context = 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

出现的bug.png
bug已解决.png

5.pip一键导出和安装
  • 一键导出:pip freeze > requiresment.txt
  • 一键安装:pip install -r requiresment.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值