今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的。
<强>开发环境强>
操作系统: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迁移这样,框架就会帮助我们完成底层的数据库操作了。而且不用担心表与表之间的关系。
<强>管理层强>
由于我们完成了模型的创建了,所以想当然的需要来个管理的,那么让管理员登场吧,所以我们需要将模型注册到管理上面,这样就会在管理页面出现这三个选项了。
<强>控制器层设计强>
其实就是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实现博客系统完整版