Django基础


Django简介

MVC(Model View Controller)模式,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

  • Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
  • View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
  • Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

Django是一个基于MVC构造的Web应用框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。  

  • 模型(Model),即数据存取层处理与数据相关的所有事务,用于创建模型的对象关系映射。
  • 模板(Template),即表现层处理与表现相关的决定: 如何把页面展示给前端用户。
  • 视图(View),即业务逻辑层存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

settings

1、app路径

通过python manage.py startapp 'appname'创建的应用,需要在这儿添加。

INSTALLED_APPS = [
    'django.contrib.admin',  #管理员站点
    'django.contrib.auth',  #认证授权框架
    'django.contrib.contenttypes',  #内容类型框架
    'django.contrib.sessions',  #会话框架
    'django.contrib.messages',  #消息框架
    'django.contrib.staticfiles',  #管理静态文件的框架
    'myapp.apps.MyappConfig',  #自定义创建的app
]

2、中间件

可以添加自定义的中间件,配置要写在系统中的后面

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

3、数据库

默认配置sqlite3

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

MySQL数据库配置

DATABASES = {
 'default': {  
 'ENGINE': 'django.db.backends.mysql',
 'NAME': 'django', 
 'USER': 'root',
 'PASSWORD': '123', 
 'HOST': '',   #默认localhost
 'PORT': '3306',
 }
}

#需要在应用目录下的__init__.py文件中添加
import pymysql
pymysql.install_as_MySQLdb()

4、静态文件目录

可以自定义一个静态文件目录,存放css文件、js文件、图片等一些静态文件。

#为这个目录添加虚拟的名称,引用是它就代替真实的目录
#目的是为了,改变真实的目录名时,代码中的目录结构不需要修改
STATIC_URL = '/static/'

#配置真实路径
STATICFILES_DIRS=[
 os.path.join(BASE_DIR,"static"), 
]