Django配置和基础,T代表模板(Temp
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端口
相关内容
- Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操
- 【scikit-learn基础】--『数据加载』之外部数据集,外部
- Windows服务器,通过Nginx部署VUE+Django前后端分离项目,本
- 使用python311+pycharm社区版+MySQL80,使用django连接MySQL,
- 【scikit-learn基础】--『数据加载』之样本生成器,通过
- 【scikit-learn基础】--『数据加载』之真实数据集,玩具
- 【scikit-learn基础】--『数据加载』之玩具数据集,不管
- Django学习(二) 之 模板的使用,昨天下午去姐姐家,我
- 【scikit-learn基础】--概述,Scikit-lea
- Django学习(一) 之 环境搭建,可能会有人说,之前不
评论关闭