Django

前提是你 提交于 2020-01-31 11:07:29

目录

常见的web框架MVC模型


MVT模型


Django


虚拟环境


创建Django项目


ORM框架


模型类生成表:


Django的后台管理


视图函数的使用


常见的web框架MVC模型:
  • MVC模型的简介:

    MVC(Model View Controller)的中文名称叫做模型视图控制器模型,就是因为它的英文名字太流行了,中文名字反而被忽略了。它诞生于20世纪80年代,原本是为桌面应用程序建立起来的一个框架,现在反而在Web应用中大放异彩(其实也可以把B/S认为是C/S的瘦化结构),MVC框架的目的是通过控制器C将模型M(代表的是业务数据和业务逻辑)和视图V(人机交互的界面)实现代码分离,从而使同一个逻辑或行为或数据可以具有不同的表现形式,或者是同样的应用逻辑共享相同、不同视图。比如,可以在IE浏览器访问某应用网站(页面格式遵守HTML标准),也可以用于手机访问。

    简单点说就是和算法中的分而治之有点像。将一个功能分成不同的模块进行操作,最后在进行并,也就是耦合。

返回目录


  • MVC模型的原理:

    下面这个就是MVC工作的基本原理图:
    在这里插入图片描述
    浏览器(客户端)发送请求给 C 控制器,控制器将接收数据后,通过 M 将数据存放到数据库中并将存储的结果直接返回给 C , C 然后给 v 视图发送命令, v 将展示视图的HTML返回给 c 控制器,控制器最后再将返回来的命令直接传给浏览器进行展示。

    综上:MVC模块中各个器件的工作原理也都清晰明了:

    C:控制器。相当于人的大脑,进行命令的处理和结果的返回。与M和V进行交互。
    V:视图器。展示的html页面全部都交给它进行。
    M:模板器。和数据库进行交互。

返回目录


MVT模型
  • MVT模型的简介

    MVT模型和传统的MVC模型实际上是一样的。只是在创建Django这个框架的时候,把他改成了MVT模型。但是实际上的一些功能的组成是和MVC是一样的。在这里也不过多的讲述。

返回目录


  • MVT模型的原理:

    下面的图就是MVT模型工作的基本原理
    在这里插入图片描述
    浏览器发送请求的命令给V视图,视图v接受到数据后交给M进行和数据库的交互。模块M将数据存储到数据库之后,将存储的结果和请求一并发给V表示已经存储完成了。然后v将接受到的指令发给T模块说要展示给用户看,然后模块T接受到指令后返回相应的html给模块V,最后模块V在将返回的html返回给用户进行展示。整个过程其实和MVC的如出一辙,只不过就是模块的名称换了。

    MVT模块中的各个器件的工作原理:

    M :和在MVC中一样还是用于和数据库的交互
    V :控制器的作用。用于和用户进行命令的发送和接收。主要是与用户进行交互
    T:就是在MVC中视图的作用。存储html的页面。需要时进行展示

返回目录


Django
  • Django官方文档: https://www.djangoproject.com/
  • Django2.0开发文档: https://docs.djangoproject.com/zh-hans/2.0/

返回目录


虚拟环境
  • 什么是虚拟环境

    如果一台机器上面又好几个不同的软件需要不同的环境来运行,而后面的环境里面的包可能会将前面所使用的包里面的进行覆盖,然后就造成了软件不能够运行的情况,这样的时候虚拟环境就派上了用场。

    虚拟环境就是直接将原来的原环境进行复制,后面再需要添加一些包的时候再进行添加,但是与整个环境是隔离开来的。对各个环境之间互相都不影响。这就是创建虚拟环境的好处。

返回目录


  • 创建虚拟环境
    • 安装虚拟环境的命令:

    • 安装虚拟环境
      sudo pip install virtualenv

    • 安装虚拟环境扩展包
      sudo pip install virtualenvwrapper

    • 编辑.bashrc文件添加下面两行:
      export WORKON_HOME=$HOME/.virtualenvs
      #这一行主要是将创建的虚拟环境的路径添加到下面

      source/usr/local/bin/virtualenvwrapper.sh
      #这一行主要是将扩展文件的路径添加到下面

    • 使用source .bashrc将扩展包文件进行生效
      #这个扩展包的文件就是方便使用虚拟环境,不用总是输入很长的命令进行使用。

      (其中值得注意的就是输入这个命令的时候中间是有一个空格的,不然会出现找不到命令这个错误。)

返回目录


  • 使用虚拟环境的命令:
    • 创建虚拟环境的命令:
      mkvirtualenv (虚拟环境的名称)
      #一般使用这个命令的创建的虚拟环境是默认的版本

      如果要使用python3进行创建的话,可以使用下面的命令进行:
      mkvirtualenv -p python3 (虚拟环境的名字)

    • 进入虚拟环境
      workon virtualenvs (虚拟环境的名字)
      进入虚拟环境后,所有安装的包均在虚拟环境下的python文件夹中

    • 退出虚拟环境
      deactivate
      直接就可以退出当前的虚拟环境

    • 查看当前所有的虚拟环境
      workon+空格+Table按两下就能显示出所有的虚拟环境

    • 删除虚拟环境
      rmvirtualenv(虚拟环境的名称)

返回目录


  • 虚拟环境中安装包的常见命令:
    • 安装指定版本的包或者软件:

      pip install (包的名字)==(版本号) 例如:pip install Django==2.0

      (值得注意的是:不能使用 sudo pip install Django==2.0 sudo代表着超级管理的意思,这样会直接将包安装到真实的主机环境中间去)

      apt-get install (软件) 例如:apt-get install mysql

      (这个安装命令是直接安装软件的,不像前面一个pip install (包的名字)==(版本号)一样是需要依赖于python环境下才能进行安装的。这个命令直接在虚拟环境下安装想要使用的软件,不需要依赖于任何的环境)

    • 查看当前虚拟环境安装的所有包的命令

      pip list 或者 pip freeze在这里插入图片描述

返回目录


创建Django项目

  • 创建Django项目:

    django-admin startproject(项目的名称)
    在这里插入图片描述
    manage.py:
    主要是用来创建一些应用的系统式文件

    init.py:
    初始化文件.告诉使用者这是一个python的包

    settings.py:
    项目的配置文件

    urls.py:
    主要是配置路由url地址

    wsgi.py:
    服务器与django交互的入口

返回目录


  • 创建Django应用:

    python manage.py startapp (应用的名称)
    在这里插入图片描述

    admin.py:
    这是后台进行管理的文件,同过这个文件进行后台管理。

    apps.py:
    当前app的配置信息,在Django1.9后自动生成,一般情况下无须进行修改

    M,V,T,:
    mvt三兄弟前面有就不在这里细说了

返回目录


  • 项目与应用的联系:

    在项目的setting.py文件中配置前面已经创建过的应用,使得项目和应用产生联系
    在这里插入图片描述

返回目录

2020-01-13 22:45:36 星期一


ORM框架:

O(object 类,对象),R(relation 关系),M(mapping 映射)
ORM也就是根据O模板中的类生成相应的表直接映射到数据库中进行相应的操作
在这里插入图片描述
Django中内置了ORM框架。直接可以通过模型类映射到数据库中的表,操作数据表,从而不在需要使用SQL语句进行操作。
ORM还可以根据设计的类生成数据库中的表

返回目录


模型类生成表

这里只作简单得介绍,具体得看开发文档中的模型类即可

  • Django1.8.2开发文档模型类:
    https://docs.djangoproject.com/zh-hans/2.0/intro/overview/

  • 先在model.py文件中创建模型类:
    模型类中的具体细节后面在讲。在这里插入图片描述先在model.py文件中创建模型类。


  • 生成迁移文件
    python manage.py makemigrations

    这个样子表示迁移文件生成成功。 在这里插入图片描述 生成的迁移文件直接放在migrations的文件夹下。
    在这里插入图片描述
    迁移文件的内容

    # Generated by Django 2.0 on 2020-01-14 10:48
    from django.db import migrations, models 
    class Migration(migrations.Migration):
    
     initial = True
    
     dependencies = [
     ]
    
     operations = [
         migrations.CreateModel(
             name='BookInfor',
             fields=[
                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                 ('btitle', models.CharField(max_length=20)),
                 ('bup_data', models.DateField()),
             ],
         ),
     ]
    
    
    
    #迁移文件中主要是类似于sql语句一样的,将创建的模型类直接变成相应的语句一样
    

返回目录


  • 执行迁移生成表
    python manage.py migrate
    在这里插入图片描述
    这样就表明将迁移文件生成了表

返回目录


Django后台管理

  • 本地化
    本地化需要执行的就是修改 所在的地区和时间
    在项目配置的setting.py目录中进行修改
    如图所示:
    在这里插入图片描述
    Asia/Shanhai: 表示使用上海时区的时间作为后台管理的时间
    en-hans: 表示使用汉字作为语言文字

返回目录


  • 创建超级管理员
    输入命令:
    python manage.py createsuperuser
    在这里插入图片描述
    输入之后按照要求填写
    用户名:
    邮箱:
    密码:
    就可以创建超级用户

返回目录


  • 登录管理员账户

    127.0.0.1:8000/admin
    后面加上admin就能进入管理员登录页面进行登录
    在这里插入图片描述
    输入创建的用户和密码就能就行登录

返回目录


  • 增删改查
    后台管理的操作还是比较直白和简单的。直接操作就行。

    登录后看不到数据表中的操作
    只有用户组的(可以进行注册用户删除用户等等的操作)
    在这里插入图片描述
    在admin中注册
    这里需要在前面从应用中的models模块中导入两个模型类
    在这里插入图片描述
    就可以看到数据库中的表直接的展示在了后台管理之中

    后台展示
    在这里插入图片描述

返回目录


  • 自定义管理页面
    想要在后台中显示出表中的信息,而不是直接的一本书,可以自定义显示页面
    在这里插入图片描述
    admin中可以直接写两个模型管理类,并将要显示的内容直接放在列表中
    然后注册模型类的时候,在模型类的后面加上注册的模型管理就行

    效果显示:
    在这里插入图片描述
    而不是直接展示固定的书名了。书籍有关的信息都可以自己随心所欲的展示.

返回页面


视图函数的使用

  • 视图函数基本的使用规则

    视图函数的使用基本的套路:
    在这里插入图片描述

  • 视图函数配置

    • 项目urls的配置:
      在这里插入图片描述
      urlpatterns: 是所有url地址的集合。整个项目最先就是到这个地方进行地址匹配搜索。
      path(): 最前面一个参数是正则表达式进行匹配。匹配上了后就执行后面的include函数。找到应用中的url地址

    • 应用url的配置:
      在这里插入图片描述

      应用的url的写法和项目的写法都是一样的,就不再具体叙述。

    • 视图函数
      视图函数得配置如图:
      在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!