教程目录

1.1 CoolBlog开发笔记第1课:项目分析

1.2 CoolBlog开发笔记第2课:搭建开发环境

前言

  经过上一节我们已经创建了CoolBlog工程,但是关于CoolBlog的功能代码还没有写,Django只是帮助我们搭建好一个框架。在Django的思想中,希望我们将项目的功能分成一个个应用来进行开发,类似于开发插件,最后Django会安装好这些“插件”并运行。不过也没有必要划分的这么仔细,Django只是想让我们的项目更有层次性,我们完全可以将关联比较密切的几个功能统一成一个应用。

  通过1.1节,我们对整个项目的功能做了一个整体的认知,大体可以将其分为三个应用来进行开发:

  1. 文章、分类和标签这三者关系紧密,可以统一作为一个应用来开发,相当于前台,名称为home。
  2. 评论功能虽然和文章有很大的关系,但是评论功能的实现可能会用到第三方插件,我还是倾向于将其作为独立的应用,名称定为:comments。
  3. 搜索功能可以作为独立的应用,名称定为:search。

  接下来我们依次开发上述应用,首先我们开发home应用。在命令行中,激活虚拟环境,进入manage.py所在目录,并运行python manage.py startapp home命令创建home应用,如下图所示。

1.19 创建应用

这时候会在CoolBlog生成了一个home文件夹,我们看一下目录结构。

1.20 应用目录结构

  在生成应用的时候,我们用到了startapp命令,在启动项目的时候,用到了runserver命令,这是Django为了方便我们开发提供的一些快捷方式,而manage.py就是这个快捷方式的入口。幸亏有了这些命令,不然我们新建应用,需要建立好多文件。

在图1.20的目录结构中,主要对home目录下的几个文件或文件夹进行说明:

  • migrations文件夹用来存放对数据库的改动
  • admin.py是用来向Django后台注册应用,并可以自定义在管理后台的显示和过滤方式
  • models.py是用来描述应用的数据库模型,Django会通过ORM的方式将模型映射成数据库的真实改动。
  • views用来定义视图处理方式,对于不同的url请求,我们该如何处理。

创建完应用就结束了吗?当然没有。这个时候还没有告诉Django这个应用的存在,需要注册这个应用,类似于安装插件。在CoolBlog文件夹中还有一个同名的CoolBlog文件夹,里面的文件是关于整个工程的配置信息。

打开其中的settings.py文件找到INSTALLED_APPS字段,将home应用的名称添加其中。

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home',#注册home目录
]

  大家可以看到除了我们自己添加的应用,还有一些Django内置的应用,这就是Django强大的地方。很多功能Django都帮我们实现了,比如后台管理,权限控制与认证等等,这样做一些大点的工程就会变得非常快捷,在这里要感谢一下Django的开发团队。本节创建应用结束,下一节开始设计home应用的数据库模型,在Web项目的开发中,数据库模型的设计始终是整个项目的重中之重。

最后

我新书《Python爬虫开发与项目实战》出版了,如果大家对这本书感兴趣的话,可以看一下 试读样章

欢迎大家支持我公众号:

最新文章

  1. C语言 · 十六进制转十进制
  2. Quartz2D之绘制一个简单的机器猫
  3. thinkphp 项目分组 -开发随笔1
  4. linux中如何查看进程对应的cpu使用情况?
  5. BZOJ-1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法+乱搞
  6. Java网络通信
  7. I'm back
  8. 机器学习实验报告:利用3层神经网络对CIFAR-10图像数据库进行分类
  9. 求最大值最小值的方法 时间复杂度O(n)
  10. HDU 4691(多校第九场1006) 后缀数组
  11. MYSQL导入数据报错|MYSQL导入超大文件报错|MYSQL导入大数据库报错:2006 - MySQL server has gone away
  12. Zookeeper管理多个HBase集群
  13. Linux学习之路(二)
  14. SaaS服务和个性化需求,就不能鱼和熊掌兼得吗?
  15. DHCP服务器 出现的故障
  16. php -- new self() 和 new static
  17. select 数字/字符串/count(参数)/sum(数字) from table
  18. Druid介绍
  19. Oracle_PL/SQL(7) 集合
  20. win2003 远程连接限制

热门文章

  1. docker对cpu使用及在kubernetes中的应用
  2. CentOS6.5下netcat工具安装教程
  3. 从插上网线到web页面请求,究竟发生了哪些过程?(计算机网络篇)
  4. RColorBrewer的使用
  5. IIS的安装与设置(windows版本)
  6. Junit4测试Spring
  7. javascript基础-语法
  8. 一步一步实现基于GPU的pathtracer(一):基础
  9. testlink(以及服务器)问题定位思路
  10. 【Python中if __name__ == '__main__': 的解析】