【美高梅开户网址】Django框架简单介绍,Django框架的详解

Django框架简要介绍

一、MVC框架和MTV框架

MVC,全名是Model View
Controller,是软件工程中的壹种软件架构格局,把软件系统一分配为四个主导部分:

模型(Model)、视图(View)和调节器(Controller),具有耦合性低、重用性高、生命周期开销低级优点。

MVC的实质就是用一种职业逻辑、数据、分界面突显分离的方式组织代码,将事情逻辑集中到一个部件里面,

在革新和天性化定制分界面及用户交互的同时,无需重新编写专门的工作逻辑。

美高梅开户网址 1

 

想要更详尽的刺探MVC方式? >>
谈谈MVC模式

Django框架的M电视情势本质上与MVC框架未有啥样界别,也是分成三片段,来下降各类部分之间的耦合性。

Django框架的区别之处在于它拆分的叁片段为:Model(模型)、Template(模板)和View(视图),也正是MTV框架。

 Django框架简单介绍

Django框架

MVC框架和MTV框架

MVC,全名是Model View
Controller,是软件工程中的1种软件架构形式,把软件系统一分配为四个主导部分:模型(Model)、视图(View)和调整器(Controller),具备耦合性低、重用性高、生命周期费用低档优点。

美高梅开户网址 2

想要更详细的问询MVC方式?
:>>点我

Django的MTV模式

       Model(模型):负担作业对象与数据库的目的(O奥迪Q5M)

       Template(模版):负担什么把页面展现给用户

       View(视图):担任作业逻辑,并在适宜的时候调用Model和Template

美高梅开户网址 ,除此以外,Django还有八个urls分发器,它的成效是将二个个UTiguanL的页面请求分发给不相同的view管理,view再调用相应的Model和Template

MVC框架和MTV框架(通晓就可以)

MVC,全名是Model View
Controller,是软件工程中的1种软件架构情势,把软件系统一分配为多个主导部分:模型(Model)、视图(View)和调控器(Controller),具备耦合性低、重用性高、生命周期开销低端优点。

美高梅开户网址 3

 

想要更详细的垂询MVC形式?
>> 点我

Django框架的设计格局借鉴了MVC框架的思辨,也是分成三有个别,来下滑各样部分之间的耦合性。

Django框架的不一致之处在于它拆分的3有个别为:Model(模型)、Template(模板)和View(视图),也正是MTV框架。

【美高梅开户网址】Django框架简单介绍,Django框架的详解。MVC框架和MTV框架

MVC,全名是Model View
Controller,是软件工程中的软件架构方式,把软件系统一分配为四个着力部分:模型(Model)、视图(View)和调整器(Controller),具备耦合性低、重用性高、生命周期成本低等优点。

美高梅开户网址 4

Django的MTV模式

       Model(模型):负担作业对象与数据库的目标(O科雷傲M)

       Template(模版):肩负什么把页面展现给用户

       View(视图):担任作业逻辑,并在适当的时候调用Model和Template

除此以外,Django还有3个urls分发器,它的功效是将二个个UPAJEROL的页面请求分发给分歧的view管理,view再调用相应的Model和Template

Django框架图示

美高梅开户网址 5

 

Django的MTV模式

       Model(模型):担当作业对象与数据库的对象(O翼虎M)

       Template(模版):担当什么把页面展现给用户

       View(视图):担负作业逻辑,并在适龄的时候调用Model和Template

别的,Django还有一个urls分发器,它的功用是将三个个U大切诺基L的页面请求分发给不一致的view管理,view再调用相应的Model和Template

Django的MTV模式

Django框架的设计情势借鉴了MVC框架的想想,也是分成三局地,来下降种种部分之间的耦合性。

Django框架的分歧之处在于它拆分的3有的为:Model(模型)、Template(模板)和View(视图),也便是MTV框架。

 

Model(模型):担负作业对象与数据库的靶子(O索罗德M)

       Template(模版):肩负什么把页面呈现给用户

       View(视图):担当作业逻辑,并在适宜的时候调用Model和Template

其余,Django还有多少个urls分发器,它的机能是将三个个UCR-VL的页面请求分发给分裂的view处理,view再调用相应的Model和Template

Django框架图示

美高梅开户网址 6

APP

四个Django项目得以分成很七个应用程式,用来隔离分歧功用模块的代码。

Django框架图示

美高梅开户网址 7

 

Django框架图示

美高梅开户网址 8

HTTP 知识互补

命令行创立

python manage.py startapp app01#各种app的名字

APP

一个Django项目得以分为诸多少个应用软件,用来隔绝区别功用模块的代码。

APP

2个Django项目方可分为很四个APP,用来隔开不一样作用模块的代码

HTTP协议音讯的格式

1. 请求(request)
        请求方法 路径 HTTP/1.1\r\n
        k1:v1\r\n
        ...\r\n
        \r\n
        请求体        <-- 可以有,可以没有

2. 响应(response)
        HTTP/1.1 状态码 状态描述符\r\n
        k1:v1\r\n
        Content-Type: text/html; charset=utf8\r\n
        \r\n
        响应正文       <-- HTML内容

使用PyCharm创建

详细音信点击这里

在江湖弹出的通令窗口输入:

startapp app01

命令行创设

python manage.py startapp app01

命令行创制

美高梅开户网址 9

Python web框架的武当山真面目

a. 收发socket消息                   --> 按照HTTP协议消息格式去解析消息

b. 路径和要执行的函数的对应关系        --> 主要的业务逻辑

c. 字符串替换                       --> 模板(特殊符号 --> 数据)

路由系统 

Django路由系统 >> 点作者    后续更新

使用PyCharm创建

美高梅开户网址 10

 

在世间弹出的命令窗口输入:

startapp app01

亟待增多应用软件名

美高梅开户网址 11

 

一个完整得请求流程

0. 启动服务端,等待客户端(用户的浏览器)来连接
1. 在浏览器地址栏输入URL,与服务端建立连接,浏览器发送请求
2. 服务端收到请求消息,解析请求消息,根据路径和函数的对应关系,找到将要执行的函数
3. 执行函数,打开HTML文件,进行字符串替换,得到一个最终要返回的HTML内容
4. 按照HTTP协议的消息格式要求,把HTML内容回复给用户浏览器(发送响应)
5. 浏览器收到响应的消息之后,按照HTML的规则渲染页面.
6. 关闭连接

视图系统

Django视图系统
>> 点笔者

 

 使用pycharm创建

美高梅开户网址 12

在下边弹出的授命框输入

美高梅开户网址 13

 

Django知识

模板

模板(Template)系统 >> 点小编   后续更新

安装

1. Django版本 1.11.xx
2. 安装方式
    1. 命令行        --> Python环境(双版本,pip的使用)
        pip3 install django==1.11.11
        pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11
    2. PyCharm安装

模型

  1. 模型(model)系统OCRUISERM 的主导介绍
  2. O奥迪Q5M字段和字段参数
  3. OLANDM的常用操作
  4. ORM的F查询和Q查询,事务

Django项目运行

1. 命令行启动
    在项目的根目录下(也就是有manage.py的那个目录),运行:
    python3 manage.py runserver IP:端口--> 在指定的IP和端口启动
    python3 manage.py runserver 端口   --> 在指定的端口启动
    python3 manage.py runserver        --> 默认在本机的8000端口启动
2. PyCharm启动
    点绿色的小三角,直接可以启动Django项目(前提是小三角左边是你的Django项目名)

创建Django项目

1. 创建方式
    1. 命令行创建方式
        1. cd到你要保存Django项目的目录
        2. Django-admin startproject 项目名   --> 会在当前目录创建Django项目
        3. django-admin startproject mysite
    2. PyCharm创建方式
        1. File --> new project --> ...
        2. 创建完之后一定要选在新窗口打开!!!
        3. File --> New project --> 左侧选Django --> 右侧填项目路径,并且勾选python.exe

配置Django项目 项目名/settings.py文件

1. settings.py文件
    1. templates文件夹的位置
    2. Templates(存放HTML文件的配置)       <-- 告诉Django去哪儿找我的HTML文件

2. 静态文件(css/js/图片)
            1. STATIC_URL         --> 静态文件夹的别名(在HTML文件中用的)
            2. STATICFILES_DIRS   --> 静态文件夹的真正路径
            例如:
            # 静态文件保存目录的别名
            STATIC_URL = '/static/'
            # 所有静态文件(css/js/图片)都放在我下面你配置的文件夹中
            STATICFILES_DIRS = [
                os.path.join(BASE_DIR, "static")
            ]

3. 注释掉 csrf 相关的中间件
    #   'django.middleware.csrf.CsrfViewMiddleware',           # 默认在47行

views.py

1. 专门用来定义处理请求的函数
    1. 基本必备三件套
    from django.shortcuts import HttpResponse, render, redirect
        1. HttpResponse("要返回的内容")               --> 通常用于直接返回数据
        2. render(request, "html文件", {"k1": v1})   --> 返回一个HTML文件或者打开文件进行字符串替换
        3. redirect("URL")                          --> 告诉用户的浏览器去访问其他的URL

2. request相关
        1. request.method     --> 查看请求的方法
        2. request.POST       --> 获取POST请求的数据

ORM

1. 什么是ORM? 
是一种编程的方法论(模型), 和语言无关.(其他的语言也有类似的实现.)
    import pymysql
    pymysql.connect(
     ...
     ...
    )
    1. 不同的程序员写的SQL水平参差不齐
    2. 执行效率也参差不齐
    python语法   --自动翻译-->  SQL语句
    jQuery                      DOM
    $("#d1")     --自动翻译-->  document.getElementById("d1")

    优点:
        1. 简单,不用自己写SQL语句
        2. 开发效率高
    缺点:
        1. 记忆你这个特殊的语法
        2. 相对于大神些的SQL语句,肯定执行效率有差距       

2. ORM的本质(ORM的对应关系:):
    类    --->    数据表
    对象  --->    数据行
    属性  --->    字段

    按照规定的语法写,自动翻译成对应的SQL语句.

3. ORM的功能:  
        1. 操作数据表    --> 创建表/删除表/修改表
        2. 操作数据行    --> 数据的增删改查

行使Django的O悍马H贰M详细步骤

1. 手动创建数据库
    create database 数据库名;

2. 在settings.py里面,配置数据库的连接信息
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',      # 连接的数据库类型
            'NAME': 'day62',                           # 数据库名称
            'HOST': '127.0.0.1',                       # 连接数据库的地址
            'PORT': 3306,                              # 端口
            'USER': 'root',                            # 用户名
            'PASSWORD': '123456',                      # 密码
        }
    }

3. 在项目/__init__.py告诉Django用pymysql模块代替MySQLdb来连接MySQL数据库
    import pymysql
    pymysql.install_as_MySQLdb()

4. 在app下面的models.py文件中定义一个类,这个类必须继承models.Model
    # 出版社
    class Publisher(models.Model):
    id = models.AutoField(primary_key=True)  # 自增的ID主键
    # 创建一个varchar(64)的唯一的不为空的字段
    name = models.CharField(max_length=64, null=False, unique=True)

5. 执行两个命令(在项目的根目录(有manage.py文件的那个目录))
    1. python3 manage.py makemigrations   --> 把models.py里面的更改记录到小本本上
    2. python3 manage.py migrate          --> 把更改翻译成SQL语句,去数据库执行

 表和表之间的涉及

1、一对多(出版社和书)
class Publisher(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=64)

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=64)
    # 外键(models.ForeignKey 一对多)
    publisher = models.ForeignKey(to="Publisher")

2、多对多(作者和书)
class Publisher(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=64)

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=64)
    # 外键(models.ForeignKey 一对多)
    publisher = models.ForeignKey(to="Publisher")

class Author(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=32)
    # 外键(models.ManyToManyField 多对多)
    books = models.ManyToManyField(to="Book")

 

GET 请求和 POST 请求

1. GET请求和POST请求
    都属于HTTP协议规定的请求方法

2. 什么时候用GET请求?
    1. 浏览器想要得到一个HTML页面的时候  
    2. 搜索引擎查询关键字的时候 (GET请求携带的数据都拼在了URL上)  www.sogo.com/web/?query=迪丽热巴
    3. GET请求携带的数据有长度限制 40k

3. 什么时候用POST?
    1. 向后端提交数据(form表单提交数据)
        1. 大段的数据
        2. 包含隐私的数据
        3. 上传文件

4. 实际中GET和POST的应用场景
    1. GET:
        1. 直接在浏览器地址栏输入URL访问网站
        2. 点击a标签
    2. POST:
        1. 登录注册
        2. 修改(新增)大段的数据
        3. 上传文件

request相关的知识点

1. request.method
    1. GET
    2. POST
2. request.POST     ——> 所有和POST请求相关的数据
3. request.GET      ——> 所有和GET请求相关的数据 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图