Django做一个简单的博客系统(1)----准备工作

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42567323/article/details/102620115
前言

    学了一段时间的Django了,觉得再学下去可能也学不会了,而且以前学到可能都会忘掉,所以就来做一个简单的博客系统,来巩固一下自己学的知识.
    感谢大神的教程:Django搭建个人博客.

一.准备工作

    首先创建projectPersonal_blog,创建好project后,在终端输入以下命令创建app:

python manager.py startapp article

    然后对settings.py进行相应的配置,包括:

  • app的注册;
  • 数据库的配置;
  • 静态文件的配置;
  • 数据库的配置(我的数据库用的是mysql);
        由于配置的是mysql,所以要在与项目同名的Personal_blog文件夹下的__init__.py中添加以下代码以保证程序的正常运行:
    Personal_blog/init.py:
import pymysql
pymysql.install_as_MySQLdb()

    相关的配置都做好以后,接下来就开始编写url和models.

二.配置url

    在与项目同名的Personal_blog文件夹下的urls.py中配置article这个app的url:

from django.contrib import admin
from django.urls import path
from django.urls.conf import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('article/', include('article.url',namespace='article')),   # namespace可以保证反查到唯一的url,即使不同的app使用了相同的url(后面会用到)。
]

    然后在article下创建一个url.py文件,然后配置url:

from django.urls import path
from article import views

app_name = 'article'    # 正在部署的应用的名称

urlpatterns = [
    # 参数name用于反查url地址,相当于给url起个名字
    path('article-list/',views.article_list,name='article_list' ),
]

三.编写views

view.py:

from django.shortcuts import render,redirect,HttpResponse

# Create your views here.

def article_list(request):
    return HttpResponse('Hello World')

    然后运行项目,在终端中输入:http://127.0.0.1:8000/article/article-list/,我们的项目正常运行,接下来就来创建数据表:

四.models操作:

    先来创建一个简单的文章数据表,包括文章作者,文章标题,文章正文,文章创建时间,文章更新时间,并且与作者是多对一的关系:

from django.db import models

# 导入内建的User模型
from django.contrib.auth.models import User
# timezone用于处理时间相关事务
from django.utils import timezone

# Create your models here.

# 博客文章数据类型
# 包括:文章作者,文章标题,文章正文,文章创建时间,文章更新时间
class ArticlePost(models.Model):
    # 文章作者,参数on_delete用于指定数据删除的方式
    # ForeignKey是一对多关系,这里关联的是User,意思就是一个作者可以对应多个文章
    # User是Django自带的一个账号系统,可以满足一般网站的用户相关的基本功能
    author = models.ForeignKey(User,on_delete=models.CASCADE)

    # 文章标题.modesl.CharField是字符串字段,用于保存较短的字符串,比如标题
    title = models.CharField(max_length=100)

    # 文章正文,保存大量文本使用TextField
    body = models.TextField()

    # 文章创建时间,参数default=timezone.now指定其在创建数据时将默认写入当前时间
    created = models.DateTimeField(default=timezone.now)

    # 文章更新时间.参数auto_now=True指定每次数据更新的时候自动写入当前时间
    updated = models.DateTimeField(auto_now=True)


    # 定义一些额外的内容,规范ArticlePost中的数据行为
    # 内部类class Meta用于给model定义元数据
    class Meta:
        # ordering 指定模型返回的数据的排列顺序
        # '-created'表明数据应该以倒序排列
        ordering = ('-created',)

    def __str__(self):
        # return self.title将文章标题返回
        return self.title

    我们使用的是Django自带的User,User是Django自带的一个账号系统,可以满足一般网站的用户相关的基本功能.
    models创建完成后,接下来就是将数据表加入到数据库中:

python manager.py makemigrations
python manager.py migrate

    下一步,就利用Django自带的后台管理系统来创建一些数据.

扫描二维码关注公众号,回复: 7580216 查看本文章

五.后台管理操作

    管理员账号(Superuser)是可以进入网站后台,对数据进行维护的账号,具有很高的权限。这里我们需要创建一个管理员账号,以便添加后续的测试数据。
    在终端中输入:

python manage.py createsuperuser

注:在这一步操作之前,一定要创建完成数据表,也就是一定要完成python manager.py makemigrations和python manager.py migrate,否则就无法创建超级用户.

然后输入你的账号,邮箱以及密码进行创建:

Username (leave blank to use 'fml'): fml
Email address: 2459420737@qq.com
Password: 
Password (again): 
Superuser created successfully.

    超级用户创建完成后,就需要将我们的用户表注册到后台管理中,在article下的admin.py中操作(admin就是用来做后台管理的):
article/admin.py

from django.contrib import admin
# Register your models here.
from article.models import ArticlePost

admin.site.register(ArticlePost)

    然后就在浏览器中进入后台管理:http://127.0.0.1:8000/admin/
在这里插入图片描述    输入你刚才创建的用户名和密码,点击进入.在这里插入图片描述    点击"+add":
在这里插入图片描述    可以看到,这些字段就是我们创建的字段.
    然后加入一些数据就行了.
    先告一段落,后续还会更新.

写在最后

    本文是个人的一些学习笔记,如有侵权,请及时联系我进行删除,谢谢大家.

猜你喜欢

转载自blog.csdn.net/weixin_42567323/article/details/102620115