Django2.2 学习笔记1-概念篇

一、什么是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

 

posted @ 2020-11-27 11:23  潘潘达  阅读(188)  评论(0编辑  收藏  举报