zoukankan      html  css  js  c++  java
  • 跟大佬学django-发布博客文章

    发布博客文章

    我们先用最简单的方式实现博客文章的发布,使用django默认的管理功能就可以发布文章。要使用此功能,必须先创建超级管理员。下面是创建超级管理员的方法,请记住自己使用的用户名和密码。

    创建超级用户

    [root@localhost mysite]# python3 manage.py createsuperuser

    Username (leave blank to use 'root'): admin

    Email address: admin@admin.com

    Password:

    Password (again):

    Superuser created successfully.

    用户名和密码:admin/xiaxiaoxu

    运行服务器

    [root@localhost mysite]# python3 manage.py runserver 0:8000

    Performing system checks...

    System check identified no issues (0 silenced).

    October 20, 2019 - 06:01:05

    Django version 1.10.1, using settings 'mysite.settings'

    Starting development server at http://0:8000/

    Quit the server with CONTROL-C.

    注意:在linux下启动时,要把ip指向0.0.0.0,否则从windows上访问不了

    浏览器访问http://172.20.10.6:8000/admin/,就可以打开如下图所示的界面

     

    登录用户

     

    Groups和Users是django在用户管理应用中默认的。单击users会看到当前项目的用户。

    把BlogArticles类注册到admin中

    我们打开./blog/admin.py,输入如下代码:

    from django.contrib import admin
    from .models import BlogArticles
    
    admin.site.register(BlogArticles)

    在代码中我们把BlogArticles类引入到当前环境,然后注册到admin中。

    在调试状态下,如果没有新增加的文件,只是将原有文件修改了,则不需要重新启动django服务(如果django服务没有启动,请确保启动),然后打开浏览器,刷新页面,如下图所示

     

    这时可以看到新注册的BLOG

    单击Blog articles右侧的“Add”按钮可以添加博客文章,如下图所示。

    在这个页面中输入一片博客文章,点击右下角的SAVE按钮,该博客文章将被保存到数据库中,可以再次使用SQLiteSpy打开数据库,查看blog_blogarticles表的数据

    从数据库中能直观地看到刚才保存的文档。注意,在发布文章时选择xiaxiaoxu作为author,并且xiaxiaoxu在Users中的id是2,所以这里记录了它的id值,即author_id是2—这就是BlogArticles类中ForeignKey()属性的效果。

    这里的author_id对应auth_user表中的数据:

     

    为了后续操作需要,我们多发布几篇文章。

    在./blog/models.py中使用了django.utils.timezone,因此需要安装一个模块pytz,用来提供市区数值。

    安装命令:pip3 install pytz

    安装完毕,重启服务。

    增加列表页信息

    在文章的列表页,可以看到所有已经发布的文章的标题,如下所示。

     

    这样显示的列表页信息太单一。为了让列表页的信息丰富,还可以在./blog/admin.py中多写点东西,继续编辑./blog/admin.py,增加部分代码之后的内容如下。

    ./blog/admin.py:

    from django.contrib import admin
    from .models import BlogArticles
    
    class BlogArticlesAdmin(admin.ModelAdmin):
        list_display = ("title", "author", "publish")
        list_filter = ("publish", "author")
        search_fields = ("title", "body")
        raw_id_fields = ("author",)
        date_hierarchy = "publish"
        ordering = ['publish', 'author']

    修改./blog/admin.py后进行保存,刷新浏览器,会呈现如下图所示的效果。

     

    至于文件中BlogArticlesAdmin各个属性的含义,我们可以用控制变量法一次研究每个属性的含义,比如只保留第一个属性list_display,将其他属性都注释掉,看看页面效果,就知道它的含义了。

  • 相关阅读:
    新人优惠的风险
    Linux服务器记录并查询历史操作记录
    斜率比截距重要
    专访李果:初生牛犊不怕虎的移动创业者
    iPhone开发视频教程 ObjectiveC部分 (51课时)
    珍藏40个android应用源码分享
    iPhone开发教程 UI基础课程(58课时)
    ios源码分享之动画类
    史上最全的ios源码汇总。欢迎收藏
    Android开发教程汇总
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/12203248.html
Copyright © 2011-2022 走看看