Django学习笔记(二)

二、博客应用的创建

博客应用

Django 鼓励我们把自己编写的代码组织到应用(Application)里,并且最好是一个应用只提供一种功能。

  1. 创建

沿用已经创建好的虚拟环境。manage.py顾名思义是一个管理工具。可以使用它创建y一个django的app

创建命令


1
python manage.py startapp blog

1
2
3
(blogproject_env) E:\Workspace\blogproject>python manage.py startapp blog

(blogproject_env) E:\Workspace\blogproject>

2、查看创建的目录


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(blogproject_env) E:\Workspace\blogproject>tree

卷 新加卷 的文件夹 PATH 列表

卷序列号为 0000000A BC0E:BF63

E:.

├─blog

│ └─migrations

└─blogproject

└─__pycache__

多出一个文件blog文件夹

bolg目录树结构


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(blogproject_env) E:\Workspace\blogproject\blog>tree /f

卷 新加卷 的文件夹 PATH 列表

卷序列号为 00000001 BC0E:BF63

E:.

│ admin.py

│ apps.py

│ models.py

│ tests.py

│ views.py

│ __init__.py



└─migrations

__init__.py

  • admin.py:admin后台管理文件
  • init.py:让Python把该目录当成一个开发包(即一组模块)所需的文件。这是一个空文件,一般不需要做修改。
  • migrations:数据库相关目录
  • models.py:主要用一个 Python 类来描述数据表。 - 称为模型(model) 。 运用这个类,你可以通过简单的 Python 的代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。
  • views.py:视图文件
  • tests.py:测试文件

工程(Project)和应用(Application)的理解和区别

  • 目录结构
(blogproject_env) E:\Workspace\blogproject>tree /f

卷 新加卷 的文件夹 PATH 列表

卷序列号为 0000008C BC0E:BF63

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
E:.

│ db.sqlite3

│ manage.py



├─blog

│ │ admin.py

│ │ apps.py

│ │ models.py

│ │ tests.py

│ │ views.py

│ │ init.py

│ │

│ └─migrations

│ init.py



└─blogproject

│ settings.py

│ urls.py

│ wsgi.py

│ __init__.py



└─__pycache__

settings.cpython-36.pyc

urls.cpython-36.pyc

wsgi.cpython-36.pyc

__init__.cpython-36.pyc
  • Project

其中manage.py是在开发web项目时经常用到的工具,如:python manage.py runserver localhost:8000 ; python manage.py syndb 等等,而在内部的mysite目录下放着四个py文件,其中 init.py用于说明内部的mysite目录是一个python模块,打开settings.py文件,我们可以看到一些基本的配置信息,包括数据库配置,时区,安装的APP,中间件,日志配置,以及一些基本的目录配置等,其本质上相当于一个基本的web工程的全局配置。urls.py文件中包含一个urlpatterns变量,其实它就是一个URL Dispacher(URL分派器),用于在URL和实际的view之间建立一个映射。

  • App

其中 init.py用于说明polls目录是一个python模块,models.py中包含一系列的模型类,每个模型类对应数据库中的一个表,这之间的映射由Django来做,有关数据库的配置在mysite/settings.py中。而views.py中包含的是对各个请求的处理逻辑,前面说的URL Dispacher即将URL请求映射到这个文件中的函数或类方法上。同时可以在polls目录下创建template目录,然后将前台的html,css,script等内容放置在这个目录下,并在setttings.py文件添加相应的配置信息。所以,我们其实可以看到APP相当于一个相对独立的功能模块

  • 区别

project和APP的区别,project包含一些全局配置,这些配置构成一个全局的运行平台,各个APP都运行在这个全局的运行平台上,而APP代表的是一个相对独立的功能模块,所以程序的逻辑都在APP中

要点总结

  1. app创建
python manage.py startapp [app_name]  
  1. app注册

在project目录下的settings.py文件里添加app 的注册

  1. manage.py

manage.py 是一个重要的命令行工具,顾名思义起着管理的作用

  1. project和APP的区别

project和APP的区别,project包含一些全局配置,这些配置构成一个全局的运行平台,各个APP都运行在这个全局的运行平台上,而APP代表的是一个相对独立的功能模块,所以程序的逻辑都在APP中

-------------本文结束感谢您的阅读-------------