Django的基础了解
一、Django为我们创建的文件
在上一篇中,我们搭建了一个基本的Django项目,需要看的朋友可以点击这里跳转。
我们使用pycharm打开这个Django项目文件,看一下Django为我们创建的默认文件(我的项目名为:django1):
manage.py
- django1__init__.py
setting.py
urls.py
wsgl.py
manage.py文件:
这个文件为整个Django项目的启动文件,在这个文件中的内容我们不需要去动他,也最好不要去动(当然,大牛不用管)
在启动Django项目时,我们直接使用指令:python manage.py runserver,表示默认ip为127.0.0.1,默认端口为8000
在启动时,我们可以修改ip以及端口的参数:
python manage.py runserver ip:端口
python manage.py runserver 端口
ip设置为0.0.0.0时,表示任何人都可以通过公网IP访问Django项目,端口设置为80时,表示在访问的时候可以不用写端口号。
__init__.py文件
这个文件表示该文件夹为一个python文件的文件夹。
因为Python3没有MySQLDB的连接数据库的驱动,所以只能通过第三方库pymysql中的install_as_MySQLdb()驱动去连接数据库,而这个配置就在该文件下。
wsgl.py文件
该文件主要是用于此项目的WSGI配置,简单来说,就是你在项目下所编写的Python代码块和web服务器接口的配置文件。
urls.py文件
该文件为路由的配置文件,即视图的映射,在该文件下对创建的应用的访问路由进行配置等等。
settings.py文件
该文件包括了几乎所有Django的配置,在创建项目时,Django默认给我们配置了很多设置:
配置属性 | 作用 |
---|---|
BASE_DIR | 表示该项目的路径 |
SECRET_KEY | Django默认随机生成的安全码 |
DEBUG | 是否是调试模式,项目上线后设置为False |
ALLOWED_HOSTS | 设置可以外界访问的地址 |
INSTALLED_APPS | 添加应用,创建自己的应用后需要在这个地方添加 |
MIDDLEWARE | 中间件,自己添加后需要在这儿添加 |
ROOT_URLCONF | 项目根路由的地址 |
TEMPLATES | 模板文件的相关配置,即页面 |
DATABASES | 数据库的相关配置 |
AUTH_PASSWORD_VALIDATORS | 密码认证相关配置 |
LANGUAGE_CODE | 语言,一般设置为’zh-hans’,表示中文 |
TIME_ZONE | 时区,一般设置为’Asia/Chongqing’或’Asia/Shanghai’,表示东八区 |
STATIC_URL | 配置静态文件 |
二、Django的设计模型
MVC模式
相信学过框架的朋友应该都了解过MVC模型,目前不管是什么语言的框架,很多都是以MVC模式为基础的,可以说是所有框架都必须遵循的模式。
MVC全名为Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 通俗的来讲就是,强制性的使应用程序的输入,处理和输出分开。
整个模式的核心思想就是两个字:解耦
使用该模式的优点:减低各个模块之间的耦合性,方便变更,更容易重构代码,最大程度的实现了代码的重用。
各个字母代表的意思:
M - Model:模型层,即数据存取层。用于封装于应用程序的业务逻辑相关的数据,以及对数据的处理。说白了就是模型对象负责在数据库中存取数据;
V - View: 模板,即表现层。负责数据的显示和呈现。渲染的html页面给用户,或者返回数据给用户;
C - Controller: 控制器,即业务逻辑层。负责从用户端收集用户的输入,进行业务逻辑处理,包括向模型中发送数据,进行CRUD操作。
Django的模式
严格来说,Django的模式可以说是MVT模式,在本质上与MVC没什么特别大的区别,也是各组件之间为了保持松耦合关系,只是对于在部分定义有些不同
各个字母代表的意思:
M - model.py,模型层,定义模型与数据库中表之间的关联关系,负责业务与数据库(ORM)的对象;
V - views.py,视图层,定义业务逻辑,负责业务逻辑并适当调用Model和Template;
T - templates,模板,定义页面HTML的地方,负责把页面渲染展示给用户。
注意: Django中还有一个url分发器,也叫作路由。主要用于将url请求发送给不同的View处理,View在进行相关的业务逻辑处理。