Python使用Django实现博客系统完整版

  

今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的。

  

<强>开发环境

  

操作系统:windows 7 64位
  Django: 1.96
  Python: 2.7.11
  IDE: PyCharm 2016.1

  

<强>功能篇

  

既然是博客系统,发布的自然是博客了。让我们想想,一篇博客有什么属性,所以我们要有能添加博客,删除博客,修改博客,以及给博客发评论,贴标签,划分类等功能。

  

<>强关系分析

  


  

  

博客:标题,内容。
  标签:标签名
  分类:分类的名称
  评论:评论人,评论人邮件,评论内容

  

<强>
  

  

博客:一篇博客可以有多个标签,多个评论,属于一个分类
  标签:一类标签可以赋予多篇博客,一个博客也可以由多个标签,所以是多对多的关系
  分类:一个分类内部可以有多个博客,所以和博客是一对多的关系
  评论:很明显一个评论属于一个博客,而一个博客可以有很多的评论,所以是一对多的关系。

  

<强>模型层设计

  

废话不多说,根据上一步的关系分析,直接设计即可。

        #编码:utf8   从__future__进口unicode_literals      django。数据库导入模型      #创建您的模型。   类类别(models.Model):   ”“”   博客分类   ”“”   name=models.CharField(“名称,max_length=30)      def __unicode__(自我):   返回self.name      类标签(models.Model):   ”“”   博客标签   ”“”   name=models.CharField(“名称,max_length=16)      def __unicode__(自我):   返回self.name      类的博客(models.Model):   ”“”   博客   ”“”   title=models.CharField(“标题”,max_length=32)   作者=models.CharField(“作者”,max_length=16)   内容=models.TextField(“博客正文”)   创建=models.DateTimeField(“发布时间”,auto_now_add=True)   类别=models.ForeignKey(种类,verbose_name='分类的)   标签=models.ManyToManyField(标签,verbose_name='标签”)      def __unicode__(自我):   返回self.title      类注释(models.Model):   ”“”   评论   ”“”   博客=models.ForeignKey(博客,verbose_name='博客”)   name=models.CharField(“称呼”,max_length=16)   电子邮件=models.EmailField(“邮箱”)   内容=models.CharField(的内容’,max_length=240)   创建=models.DateTimeField(“发布时间”,auto_now_add=True)      def __unicode__(自我):   返回self.content      之前      

数据库设置

        #数据库   # https://docs.djangoproject.com/en/1.9/ref/settings/数据库      数据库={   “默认”:{   “发动机”:“django.db.backends.sqlite3”,   “名称”:os.path。加入(BASE_DIR db.sqlite3),   }   }      之前      

然后Django就可以根据我们刚才的模型来逆向的生成数据库底层的业务逻辑。然后就需要调用相关的命令即可。

        python管理。py makemigrations   python管理。py迁移      

这样,框架就会帮助我们完成底层的数据库操作了。而且不用担心表与表之间的关系。
  

  

 Python使用Django实现博客系统完整版

  

<强>管理层

  

由于我们完成了模型的创建了,所以想当然的需要来个管理的,那么让管理员登场吧,所以我们需要将模型注册到管理上面,这样就会在管理页面出现这三个选项了。

  

 Python使用Django实现博客系统完整版

  

<强>控制器层设计

  

其实就是url。py的书写,没什么好说的了吧,如下:

        #编码:utf8   django。contrib进口管理      #这里登记您的模型。   从博客。模型导入*   #注册的目的就是为了让系统管理员能对注册的这些模型进行管理   admin.site.register([类别、标签、博客)      之前      

接下来就是url。py的详细信息。

        ”““MyDjango2 URL配置      urlpattern的路线url列表视图。有关更多信息,请参见:   https://docs.djangoproject.com/en/1.9/topics/http/urls/例子:   功能视图   1. 添加导入:从my_app导入视图   2. 添加一个URL urlpattern: URL (r ^ $,视图。家,name='家')   基于类的观点   1. 添加导入:从other_app。视图导入回家   2. 添加一个URL urlpattern: URL (r ^ $, Home.as_view ()、name='家')   包括另一个URLconf   1. 从django.conf导入包括()函数:。url输入url,包括   2. 添加一个URL urlpattern: URL (r ^/博客,包括(blog.urls))   ”“”   从django.conf。url输入url   django。contrib进口管理      从博客。视图导入*   urlpattern=[   url (r ^ admin/, admin.site.urls),   url (r/$ ^博客,get_blogs),   url (r '/^细节(\ d +)/$ ', get_details, name=' blog_get_detail '),   ]      

Python使用Django实现博客系统完整版