一、什么是Django
Django是由python写成的开源的web应用框架,一般用于开发管理后台。
二、MVC
1、MVC是一种软件设计典范,用一种 业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里。
2、核心思想:解耦
3、编程模式:
1)M即Model(模型):应用程序中用于处理应用程序数据逻辑的部分,通常负责在数据库中存取数据。(管理数据)
2)V即View(视图):应用程序中处理数据现实的部分,通常依据Model(模型)数据创建。(展示数据)
3)C即Controller(控制器):应用程序中处理用户交互的部分,通常负责从视图读取数据,控制用户输入,并向模型发送数据。(关联视图与模型)
响应过程:用户发起请求至服务器,服务器是MVC模式,由Controller接收请求,并向Model发送数据,Model在数据库中处理好数据后返回给Controller,Controller将拿到的数据发送给 View,View将数据展示给用户。
优点:降低了各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用。
三、MTV
1、本质上和MVC没有区别,也是各组件之间保持松耦合关系,只是定义上不同,可以理解为是Django的MVC
2、编程模式:
1)M即Model(模型):负责业务对象与数据库对象(ORM),实际上就是数据管理
2)T即Template(模板):负责将页面展示给用户
3)V即View(视图):负责业务逻辑,并在适当的时候调用Model和Template(相当于MVC中的Controller)
注意:Django中还有一个url分发器,负责将一个个url的页面请求分发给不同的view处理器,view再调用相应的model和template处理
响应过程:用户在页面输入一个url,服务器上的url分发器器接收后,匹配不同的view,view去model中取数据,view再将数据传递给template,template渲染数据形成一个完整的html页面,view再将页面返回给浏览器呈现给用户。
四、安装
1、前提:安装有python开发环境,我是win10+python3.7
2、安装的Django版本需要与python版本对应
3、安装命令:pip install Django 如果需要指定版本则 pip install Django==版本号 即可,如果不指定则默认安装
五、如何创建一个Django项目
1、进入某个路径下,创建一个文件夹,如:在E盘下,创建DjangoLearn的文件夹作为放Django项目的文件夹
2、在DjangoLearn目录下,打开黑屏终端,输入命令:django-admin startproject 你想要取的项目名,回车,DjangoLearn下出现该名字的文件夹(注:该名字才是Django项目的名字)
栗子:django-admin startproject DjangoProject
3、在终端中输入:tree ./F 可以查看目录层级
4、DjangoProject目录层级说明:
1)manage.py 是一个命令行工具,可以通过它让我们用多种方式对Django项目进行交互
2)DjangoProject文件夹下的文件:
a、__init__.py 是一个空文件,目的是告诉python这个目录应该被看作一个python包
b、settings.py 项目的配置文件
c、urls.py url管理器,项目的url声明
d、wsgi.py 项目与WSGI相兼容的web服务器入口
六、如何创建一个Django 应用
1、在一个项目中可以创建多个应用,每个应用处理一个业务
2、打开黑屏终端,进入创建的Django项目目录下,即DjangoProject目录下,执行命令:python manage.py startapp myApp (注:myApp为应用名),回车,项目目录下会出现myApp目录
3、应用数据库配置(由于我使用数据库是mysql,而Django 默认的数据库是sqlite3,所以需要配置)
1)启动mysql服务,为项目创建要使用的数据库(如果已经有,则忽略此步骤)
2)打开settings.py文件,找到DATABASES项,修改配置,如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'NAME': 'yxj_django', # 你的数据库名 'USER': 'root', 'PASSWORD': '123456', # 你的密码 'HOST': 'localhost', 'PORT': '3306' } }
3)在项目的__init__.py中添加以下代码:
import pymysql pymysql.install_as_MySQLdb()
4、激活应用(创建完应用后是不能马上使用的,必须要激活才能使用)
进入settings.py文件找到INSTALLED_APPS项,添加“myApp”,即你的应用名
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 以下为新增应用 'myApp' ]
5、定义模型
此时的应用是没有任何数据的,所以需要添加一些数据。一个数据表对应一个模型类,类属性对应表中的字段,不需要定义主键,主键会在生成数据表时自动创建,并且值为自动增加的。
应用目录中的models.py文件是专门用于定义模型类的文件
例如,我在models.py文件中创建students和grades两个模型类
class Grades(models.Model): # 创建模型管理器,用于与数据库交互 objects = models.Manager() gname = models.CharField(max_length=20) gdate = models.DateTimeField() ggirlnum = models.IntegerField() gboynum = models.IntegerField() isDelete = models.BooleanField(default=False)
class Students(models.Model): sname = models.CharField(max_length=20) gender = models.BooleanField(default=True) sage = models.IntegerField(db_column="age") content = models.CharField(max_length=20) isDelete = models.BooleanField(default=False) # 关联外键 sgrade = models.ForeignKey("Grades", models.CASCADE)
6、在数据库中生成数据表
1)生成迁移文件:打开黑屏终端,进入DjangoProject目录下,执行命令 python manage.py makemigrations,命令执行后,会在应用目录下生成migrations目录,打开目录,会有0001_initial.py文件即迁移文件
2)执行迁移:打开黑屏终端,进入DjangoProject目录下,执行命令python manage.py migrate 相当于执行了sql语句,创建了数据表
3)迁移执行完成后查看数据表
七、启动Django服务
进入DjangoProject目录下,执行命令:python manage.py runserver
查看服务是否启动成功:打开浏览器,输入127.0.0.1:8000