Django框架的使用

一,创建基本项目

创建项目

# web是项目名称或者称为项目目录django-admin startproject web​# 会在执行命令的当前目录中 创建 web项目目录web├── manage.py     # 项目管理文件   单入口文件└── web           # 和项目同名的目录/ 存放于项目相关的配置文件 等    ├── __init__.py  # 包初始化文件    ├── settings.py  # 项目的配置文件    ├── urls.py      # 项目的根路由文件    └── wsgi.py      # 通用网关接口服务文件/后期上线部署到专业的HTTP服务器时需要用到

启动服务

# 终端切换到 web/manage.py目录中并执行以下命令python3 manage.py runserver​'''(venv) MacBook-Pro:web yc$ lsmanage.py   web(venv) MacBook-Pro:web yc$ python3 manage.py runserverWatching for file changes with StatReloaderPerforming system checks........December 28, 2019 - 05:55:33Django version 2.2.9, using settings 'web.settings'Starting development server at http://127.0.0.1:8000/Quit the server with CONTROL-C.'''

访问服务

在浏览器的地址栏 访问 url http://127.0.0.1:8000/

成功后会在浏览器中看到默认页面

二,创建应用

执行命令创建自定义应用

# 在 manage.py 同级目录下 执行 以下命令 创建应用python3 manage.py startapp home​​# 应用创建成功后,会在mamage.py 的同级目录中创建一个 应用文件夹web/├── db.sqlite3      # Django框架默认使用数据库文件├── home            # 创建的自定义应用│   ├── __init__.py│   ├── admin.py    # django框架自带后台模块配置文件│   ├── apps.py│   ├── migrations│   │   └── __init__.py│   ├── models.py   # 模型文件│   ├── tests.py    # 测试文件│   └── views.py    # 视图函数文件├── manage.py     # 项目管理文件  所以的项目指令都需要manage.py └── web           # 和项目同名的目录/ 存放于项目相关的配置文件 等    ├── __init__.py  # 包初始化文件    ├── settings.py  # 项目的配置文件    ├── urls.py      # 项目的根路由文件    └── wsgi.py      # 通用网关接口服务文件/后期上线部署到专业的HTTP服务器时需要用到​

定义视图函数 输出 Hello World

编辑 web/home/views.py文件,定义视图函数

from django.shortcuts import renderfrom django.http import HttpResponse# Create your views here.​# 定义 视图函数。输出hello worlddef hello(request):    return HttpResponse('Hello World!...')​

给视图函数定义访问路由

在 web/home/ 目录中 创建 urls.py文件. 并定义路由

#  web/home/urls.pyfrom django.urls import pathfrom . import views​urlpatterns = [    path('abc/', views.hello),]

需要在根路由中配置当前应用的路由

修改 web/web/urls.py 文件,把创建的应用中的路由 定义到 根路由中

from django.contrib import adminfrom django.urls import path,include​urlpatterns = [    path('admin/', admin.site.urls),    path('',include('home.urls'))]

启动服务,浏览器访问测试

# 启动服务。web/manage.py 同级目录中执行python3 manage.py runserver

浏览器访问会得下面的结果,就是报 404 错误

问题是由于访问的URL 路径和项目中的url配置路径不一致导致的

解决问题有两个方案:

1.改变浏览器的访问路径 访问的URL。http://127.0.0.1:8000/abc/

2.改变应用中的路由配置 由原来的 path('abc/', views.hello), 改为 path('', views.hello),

正常的访问结果:

流程总结:

浏览器访问的流程1. 用户在浏览器中输入 请求的URL地址 http://127.0.0.1:8000/abc/2. 用户的请求会经过wsgi通用网关接口,走到项目的根路由中3. 项目中的 根路由 web/web/urls.py 文件 会解析用户的请求地址 abc/4. 根路由解析后会交给 应用中字路由进行再次解析: web/home/urls.py 5. 应用中的子路由 在根据请求的地址 找到对应的视图函数6. 视图函数 views.py里面的。hello函数会执行7. hello函数 返回了一个 响应内容 给浏览器​代码角度来解读:1. views.py文件中的 hello视图函数 定义了 响应的内容。hello world2. 应用中的子路由决定如何解析或执行 对应的hello这个视图函数3. 项目中的根路由负责接收用户请求的url并找到对应的 应用去 执行4. wsgi负责接收和响应用户的请求

三, 概念解析

路由,视图,

路由:

  • 路由就是建立请求路径和执行对应视图函数的 映射关系。
  • 要先确定根路由,并依次匹配请求的规则
  • 如果匹配到就执行对应的视图函数
  • 如果没有匹配到或者出现其它问题,则会抛出对应的错误信息

视图:

  • 视图函数(或简称视图)只是一个Python函数,它接受Web请求并返回Web响应。
  • 简单理解就是专门接收用户的请求,并执行业务逻辑,之后给用户响应内容。

四,如何使用模板文件返回 Hello World

  1. 创建模版文件目录在项目中创建 templates 文件夹存放模版文件 manage.py文件同名目录中创建
  2. 配置Django的模版引擎修改 web/web/settings.py文件的 模版引擎配置
    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',
    ],
    },
    },
    ]
  3. 创建需要使用的模版文件 。html文件Web/templates/hello.htmlDocument

    Hello. World

  4. 在视图函数中调用模版文件即可
    from django.shortcuts import render
    from django.http import HttpResponse
    # Create your views here.

    # 定义 视图函数。输出hello world
    def hello(request):
    # 返回。响应字符
    # return HttpResponse('Hello World!...')

    # 返回 模版文件
    return render(request,'hello.html')
  5. 重新启动服务,并用浏览器进行访问

![](

)

五,框架的设计思想,设计模式

MVC 设计模式。设计细想

MVC是程序的架构设计,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面

MVC的核心思想:程序的解藕

M ==> Model 模型 表示为 数据层 专门负责数据相关操作

V ==> Views 视图 表示为 视图层 专门负责页面的展示(模版)

C ==> Controller 控制器 表示为 逻辑层 专门负责项目中的业务逻辑部分

MVT

M ==> Model ==> 模型 ==> 数据层

V ==> Views ==> 视图 ==> 逻辑层

T ==>Template ==> 模版. ==> 视图层

框架 路由地址_Django框架的使用相关推荐

  1. 若依框架前端菜单生成,权限标识,路由地址

    若依菜单分类三种类型M(目录).C(菜单).F(按钮) 系统模板,模仿框架写法 根据后端生成代码来创建前端页面 在菜单管理页面生成目录和菜单 路由地址填写模块名 路由地址:控制器中的地址 组件路径:前 ...

  2. django框架--路由系统

    目录 一.路由系统理解 二.路由系统功能划分 三.路由表创建 创建工具 二级路由 路由别名 动态路由及重定向 四.自定义错误页面 五.图示路由系统在框架中的定位 六.路由系统的进阶想法 一.路由系统理 ...

  3. php mvc 路由,PHP MVC框架路由学习笔记

    文章主要介绍了PHP MVC框架路由学习笔记的相关资料,需要的朋友可以参考下. 提到PHP开发web,自然离不开开发框架,开发框架为我们提供了灵活的开发方式,MVC层分离,业务解耦等... 第一篇先来 ...

  4. php常用技术与thinkphp5,thinkPHP5框架路由常用知识点汇总

    本文实例讲述了thinkPHP5框架路由常用知识点.分享给大家供大家参考,具体如下: 一.路由的模式 普通模式(默认pathinfo,不解析路由) 'url_route_on' => false ...

  5. PHP简单实现MVC框架路由功能模式

    说到使用PHP进行网站开发,自然离不开各种PHP的开发框架,开发框架为我们提供了灵活的开发方式,MVC层分离,业务解耦等等,让我们的开发更为快捷方便.但是很多人只是会使用框架,却从来不去了解框架的内部 ...

  6. ThinkPHP框架路由验证器优先于路由中间件执行的解决方案

    ThinkPHP框架路由验证器优先于路由中间件执行的解决方案 打个广告先:北京有没有在招PHP的公司,失业中... 前段时间在写项目的时候需求是先验证用户是否登录并且有该接口访问权限然后在验证访问参数 ...

  7. 前端路由跳转丢失端口号_Laravel框架-路由的基本概念及实例分析

    laravel route 路由是MVC设计模式的重要实现与组成部分,路由route是用户Http请求到C(controller)访问请求提交与传递的规则.方式与途径.在MVC架构模型下,路由的位置. ...

  8. GitHub上受欢迎的Android UI Library-项目开发实战篇:带各类框架链接地址详细解说及使用方法

    这是我列举的下列所有框架github地址:https : //github.com/opendigg/awesome-github-android-ui 抽屉菜单类的框架 MaterialDrawer ...

  9. php yii框架路由,yii框架怎样定义路由_PHP开发框架教程

    路由和URL生成 当一个YII运用入手下手处置惩罚一个请求的时刻,它首先要做的就是将请求的URL转化成一个路由.路由的作用是用于后续实例化相应的控制器和操纵,以便处置惩罚请求,全部处置惩罚历程便叫做路 ...

最新文章

  1. 图片和文件上传的两款插件
  2. 目标检测之行人检测(Pedestrian Detection)基于hog(梯度方向直方图)--- 梯度直方图特征行人检测、人流检测2...
  3. 使用ueditor小结
  4. Java基础05 实施接口
  5. 史上最惨锦鲤即将来袭!奖品堪比5年高考3年模拟!
  6. c语言中组合函数,排列组合c怎么算 公式是什么
  7. mvc filter 的用法
  8. 模板 | 如何画出漂亮的深度学习模型图
  9. mysql数据库无法启动_Mysql数据库无法启动问题的解决方案
  10. 打印机服务器不支持1020,Win7系统安装hp1020打印机后无法使用如何解决
  11. MATLAB代码:基于纳什谈判理论的风–光–氢多主体能源系统合作运行方法 关键词:合作博弈 纳什谈判 风–光–氢系统 综合能源
  12. win10没法进入安全模式的处理办法
  13. PUN ☀️九、玩家网络实例化与昵称显示
  14. 我有一个梦,叫“禾下乘凉梦“!
  15. 积分商城系统业务逻辑思维导图_怎么开发积分商城系统_OctShop
  16. Direct3D 12工作原理概述
  17. 关于人工智能不会使大脑变懒惰的议论文_人工智能的好处和风险:所有您需要知道的...
  18. MoveIt 概念、安装、学习教程
  19. Git 中 设置 提交者 email 的多种方式
  20. 用pscp进行文件传输

热门文章

  1. 【Paper】2015_异构无人机群鲁棒一致性协议设计_孙长银
  2. 【控制】《自动控制原理》胡寿松老师-第6章-线性系统的校正方法
  3. STM32的ISP升级详解
  4. MIT课程笔记①丨因果关系定义及潜在结果分析框架
  5. 解决Windows 程序界面闪烁问题的一些经验
  6. 从JS对象开始,谈一谈“不可变数据”和函数式编程
  7. Bootstrap 输入组
  8. c++string 输入换行符
  9. java socket/Serversocket编程详解(中/英文)
  10. GridView的多主键(Key)取值问题