美文网首页
Django的博客应用

Django的博客应用

作者: 酷飒de小姐姐 | 来源:发表于2021-05-23 09:13 被阅读0次

一、创建blog应用:

D:\Python36\Scripts\Djangos>python manage.py startapp blog

项目结构

二、修改项目设置

将应用添加到项目的settings.py中:

# Application definition

INSTALLED_APPS = [

'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'sign',

     'blog',

]

为什么要做这一步,作用是什么?新建应用的时候Django为什么不自己直接添加进去呢?添加应用后,Django中有一系列约定,只有在INSTALLED_APPS中设置后,应用中的模型、静态文件、模板等才能正常工作。如果添加了一个Python包,只是把公用的部分提取出来,放到一个公用的目录中,那么这个目录不需要加入到INSTALLED_APPS中,因为对于Django而言它不是一个应用。

看一下DATABASES相关的设置:

设置

默认使用的是sqlite3数据库,可以改成使用MySQL或PostgreSQL等。

二、编写模型代码

修改模型文件models.py写入以下内容:

from django.dbimport models

class Blog(models.Model):

title = models.CharField('标题',max_length=200)

author = models.ForeignKey(

'auth.User',on_delete=models.SET_NULL,null=True,verbose_name='作者'

    )

content = models.TextField('内容')

def __str__(self):

return self.title

Blog类需要继承自models.Model类,这个类中有很多“魔法”操作,比如会给每个继承的子类添加一个DoesNotExist属性,进行数据库中数据和Python对象之间的转换操作等。

数据库中现在还没有Blog相关的数据表,运行下面的命令在数据库中创建出对应的表:

python manage.py makemigrations blog

这个命令会检查app blog中的模型的变更,会发现其中创建了一个Blog类,输出如下:

Migrations for 'blog':

  blog\migrations\0001_initial.py:

    - Create model Blog

执行migrate命令让migrations文件正式作用到数据库:

数据库

执行成功。

三、体验admin站点

1、接着需要先创建一个管理账号,Django中自带了用户认证系统,使用下面的命令来创建用户相关的数据表等:

D:\Python36\Scripts\Djangos>python manage.py migrate

2、首先需要创建一个管理员账号,用于系统登录:

D:\Python36\Scripts\Djangos>python manage.py createsuperuser

Username (leave blank to use 'administrator'): ******

Email address: ********@163.com

Password:

Password (again):

Superuser created successfully.

根据提示信息输入用户名和邮箱,输入两次密码就创建成功了。

密码必须得大于8位,不能是纯数字。

后台信息的设置则需要修改admin.py,添加了以下几行:

from django.contribimport admin

from blog.modelsimport Blog

@admin.register(Blog)

class BlogAdmin(admin.ModelAdmin):

pass

启动服务:python manage.py runserver

用浏览器访问:http://127.0.0.1:8000/admin/

Django后台登录页面

输入用户名、密码,登录成功后如下图所示:

登录成功

页面上的部分内容是英文的,如果想要显示成中文,需要修改settings.py:

将LANGUAGE_CODE ='en-us',修改成:LANGUAGE_CODE ='zh-hans';zh-hans指的是中文简体,zh-hant指的是中文繁体。

下图所示:

中文

第一篇博客:

Django后台管理,新增内容的页面 Django后台管理,内容列表界面

四、对admin站点进行简单定制

(1)修改admin.py添加一个list_display设置,前面没有做任何设置时,默认显示的是Blog类中的__str__方法返回内容,相当于list_display = ['__str__']:

from django.contribimport admin

from blog.modelsimport Blog

@admin.register(Blog)

class BlogAdmin(admin.ModelAdmin):

#list_display用于设置列表页面要显示的不同字段

    list_display = ['title','author']

再次访问文章列表页,会显示“作者”一列。

(2)假如网站有一个需求,想要实现功能,即搜索文章标题或文章内容来查找对应的内容。同样很简单,使用search_fields来实现,代码如下:

@admin.register(Blog)

class BlogAdmin(admin.ModelAdmin):

#list_display用于设置列表页面要显示的不同字段

    list_display = ['title','author']

#参与搜索的字段列表

    search_fields = ['title','content']

再次运行,结果如下:

Django后台管理的搜索功能

图中多了一个搜索框,随后就可以通过文章的标题和内容来搜索相关记录。

常用ModelAdmin的属性 常用ModelAdmin的方法

相关文章

网友评论

      本文标题:Django的博客应用

      本文链接:https://www.haomeiwen.com/subject/hbwnjltx.html