Django配置和基础,T代表模板(Temp


MVC和MTV框架

MVC

MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示:

 

MTV

Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:

  • M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
  • T 代表模板 (Template):负责如何把页面展示给用户(html)。
  • V 代表视图(View):   负责业务逻辑,并在适当时候调用Model和Template。

  除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:

 

  一般是用户通过浏览器向服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

Django配置

Django官网下载页面

Django官方文档

下载Django

pip install django==4.2
 也可后面-i指定镜像源:pip install django==4.2 -i 指定源

创建一个Django项目

django-admin startproject 项目名

  需要在指定目录下创建

  由于Django是基于MTV框架,所以在项目目录下还需要创建templates文件夹存放HTML模板

应用(app)的创建和配置

python manage.py startapp app名

  

在项目目录下创建应用,创建完成之后需要在项目文件夹下的 settings.py 配置文件中配置app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 'app01.apps.App01Config',
    'app01',         # 需要手动添加app,两种方式都可以,有多少应用添加多少应用
]

  

模板(templates)的创建和配置

在项目目录下创建 templates 文件夹,用来存放 HTML 页面和 模板,创建完成之后,需要在settings.py 配置文件中配置 templates

import os  # 引入os模块
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],    # 在此配置,注意文件名不要写错
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

  

静态文件配置

1.项目目录下创建一个文件夹,例如名为 jingtaiwenjianjia ,将所有静态文件放到这个文件夹中

2.settings.py 配置文件中进行下面的配置

import os
# 静态文件相关配置
STATIC_URL = 'static/'         # 静态文件路径别名(映射),可修改
STATICFILES_DIRS = [           # 必须是这个 STATICFILES_DIRS 名字
    os.path.join(BASE_DIR,'jingtaiwenjianjia')
]

  

数据库配置(连接mysql)

Django 在项目 settings.py 配置文件中默认配置 sqlite3 数据库

 

连接 mysql 需要重新在 settings.py 文件中配置(将原有配置注释或删除),配置如下

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':' ',                  # 要连接的数据库的库名,连接前需要创建好
        'USER':'root',              # 连接数据库的用户名
        'PASSWORD':'',           # 连接数据库的密码
        'HOST':'127.0.0.1',      #  连接主机,默认本机
        'PORT':3306,               #  端口 默认 3306
    }
}

  

在项目文件夹下的 init.py 文件的配置如下:

参考论坛

# 在 __init__.py 文件下引入
import pymysql
# django4.2以上需要引入这句话,不然会报错如下错误(我猜测是高版本不兼容的问题)
# raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.3 or newer is required; you have 1.0.3.
pymysql.version_info = (1, 4, 3, "final", 0) # 1.4.3 代表mysqlclient版本号
pymysql.install_as_MySQLdb()

  

配置完成之后就是创建数据库中的数据了!

数据库同步指令

python manage.py makemigrations        # 同步数据库中的类
python manage.py migrate               # 执行数据库并创造类

  

数据库可视插件及Django所需插件

SQLite  , SQLite3 Editor  ,  MySQL Syntax  ,  MySQL  , Django

 

启动Django项目

python manage.py runserver 127.0.0.1:8000 # ip地址和端口号不写,默认本机8000端口

  

 

评论关闭