小手哆嗦一下,就能用 Python Django 实现一个微型博客系统

举报
梦想橡皮擦 发表于 2021/05/26 14:43:10 2021/05/26
【摘要】 橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 Django 世界。 滚雪球学 Python 第三轮 二、Python Django 微型博客2.1 用模板生成文件2.2 创建文章模型与数据库结构2.3 创建管理后台 二、Python Django 微型博客 通过简单的操作,就可以在 Django 中实现一个博客 应用 2....

橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 Django 世界。

二、Python Django 微型博客

通过简单的操作,就可以在 Django 中实现一个博客 应用

2.1 用模板生成文件

进入到 上篇博客 创建的目录中,执行下述命令。

django-admin startapp blog
# 也可以使用下述命令
python manage.py startapp blog

  
 
  • 1
  • 2
  • 3

命令运行之后,生成的目录如下。
小手哆嗦一下,就能用 Python Django 实现一个微型博客系统

相关文件说明如下:

blog # 根目录
	__init__.py
	admin.py # 后台管理
	apps.py # 应用设置相关
	models.py # 模型,数据库相关
	tests.py # 测试相关
	views.py # 视图相关
	migrations # 数据库变更记录文件夹

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

接下来修改 my_website 文件夹中的 settings.py 文件,添加 blog 应用,具体代码如下,重点是最后一行。

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', # 这里是非常重要的
]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在 Django 中,如果希望应用模型、静态文件、模板这些内容,需要在 INSTALLED_APPS 添加对应的应用目录,如果没有设置,应用不会进行加载。

2.2 创建文章模型与数据库结构

一篇博客包括标题,内容,发布时间等内容,这些都在 Django 中进行创建,核心要修改的是 models.py 文件。

from django.db import models

# Create your models here.
class Blog(models.Model): title = models.CharField("标题", max_length=100) content = models.TextField("内容") creatr_time = models.DateField("发布时间")

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

该类就是模型类,实现一个模型类,需要继承自 models.Model 类,该类用于进行数据库中数据和 Python 对象之间的转换操作。

下面将 Blog 类反射到 sqlite3 数据库中,本阶段请以模仿为主,后续会为你补充完整相应的知识框架。

manage.py 所在的文件夹中运行下述命令:

python manage.py makemigrations blog

  
 
  • 1

小手哆嗦一下,就能用 Python Django 实现一个微型博客系统
该命令用于检查 blog 中模型文件的变更,由于在上文我们创建了一个 Blog 类,所以 models.py 文件被修改,当执行上述命令时,会输出如下内容。

>python manage.py makemigrations blog
Migrations for 'blog':
  blog\migrations\0001_initial.py - Create model Blog

  
 
  • 1
  • 2
  • 3
  • 4

提示的信息也为 Create model Blog,提示创建了一个 Blog 类,下面将 models.py 中的内容在 sqlite3 创建出来,使用的命令为 python manage.py migrate blog,运行结果如下:

> python manage.py migrate blog
Operations to perform:
  Apply all migrations: blog
Running migrations:
  Applying blog.0001_initial... OK

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

2.3 创建管理后台

下面通过简单的步骤实现对 blog 表的管理,Django 自带用户认证系统,通过命令 python manage.py migrate 即可实现。

> python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

该命令创建一些列的数据库表结构,表结构出现之后,还需要创建登录账号,用到的核心命令是 python manage.py createsuperuser

> python manage.py createsuperuser
Username (leave blank to use 'administrator'): xiangpica
Email address: dream@163.com
Password:
Password (again):
The password is too similar to the username.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

准备工作实现完毕,对 admin.py 文件进行修改,注意 admin.py 文件的位置以及模块之间的调用关系。

from django.contrib import admin
from blog.models import Blog
# Register your models here.

@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin): pass

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在正式运行之前,还需要修改一下网页展示中英文内容,打开 setting.py 文件,修改如下内容。

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

  
 
  • 1
  • 2

准备工作完成,控制台运行下述命令 python manage.py runserver

> python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
March 24, 2021 - 22:22:33
Django version 3.1.7, using settings 'my_website.settings'
Starting development server at http://127.0.0.1:8000/

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

此时打开默认页面,展示的内容如下:
小手哆嗦一下,就能用 Python Django 实现一个微型博客系统
修改访问地址为:http://127.0.0.1:8000/admin,出现登录窗口,使用上文注册的账号即可访问。
小手哆嗦一下,就能用 Python Django 实现一个微型博客系统
小手哆嗦一下,就能用 Python Django 实现一个微型博客系统
小手哆嗦一下,就能用 Python Django 实现一个微型博客系统
输入一些文章相关信息进行保存之后,返回列表页面,出现一个小细节,橙色框内的数据是一个 Blog object,不是文章的标题,继续修改代码。
小手哆嗦一下,就能用 Python Django 实现一个微型博客系统
修改 modes.py 文件,修改内容如下:

from django.db import models


# Create your models here.
class Blog(models.Model): title = models.CharField("标题", max_length=100) content = models.TextField("内容") creatr_time = models.DateField("发布时间") def __str__(self): return self.title

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

小手哆嗦一下,就能用 Python Django 实现一个微型博客系统
一个小型的博客完成,你可以对文章进行编辑与删除操作。
小手哆嗦一下,就能用 Python Django 实现一个微型博客系统

相关阅读

  1. Python 爬虫 100 例教程,超棒的爬虫教程,立即订阅吧
  2. Python 游戏世界(更新中,目标文章数 50+,现在订阅,都是老粉)
  3. Python 爬虫小课,精彩 9 讲

今天是持续写作的第 118 / 200 天。
如果你想跟博主建立亲密关系,可以关注同名公众号 梦想橡皮擦,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家点赞评论收藏

文章来源: dream.blog.csdn.net,作者:梦想橡皮擦,版权归原作者所有,如需转载,请联系作者。

原文链接:dream.blog.csdn.net/article/details/115186744

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。