第一个页面:Hello World

第一个页面:Hello World

   想要启动项目,首先需要配置sign应用到项目中:在guest/settings.py 的代码添加

添加sign

实现:Hello World

   使用字符串实现目标:路径为index,内容为Hello World
1、首先配置页面:在sign/views页面,配置index路径
sign的index

2、在guest/urls配置路径:
添加index

   代码编写完毕后,第一个要做的就是运行项目,让项目跑起来,我们通过运行第一篇笔记的运行命令:

python manage.py runserver

启动,项目后,在浏览器地址也输入:http://127.0.0.1:8000/index/ ,截图如下:
hello world

概述

   这里实现的逻辑是用户发送请求,django的urls接收并解析请求,将对应的url跟views层关联,接着views层处理请求,返回字符串,并将响应的字符串展示给用户。这是最初级的使用,只是让我们了解django接受到请求的一个流转。在实际的应用中,用户接触到的是精美的页面,这页面指的就是html,也就是接下来要学习的:模块。

模板初了解

  模板使用的是html文件,首当其要就是创建html文件

1、在sign目录下创建一个文件templates,并在该目录下创建index.html,注意目录,这里是必须的,django是根据templates去判别的(可能认知不正确,不过先统一实现)
index.html:

<html>
<head>
    <title>欢迎界面</title>
</head>
<body>
<h1>Hello World!</h1>
欢迎来到Django的世界!
</body>
</html>

2、修改sign的views.py

from django.shortcuts import render


# 抛弃 HttpResponse 类,转而使用 Django 的 render 函数。该函数的第一个参数是请求对象的,第二个参数返回一个 index.html
def index(request):
    return render(request, "index.html")

实现效果如下:
hello

Django工作流的初理解:

  结合上述两种方式的hello world,我们可以初步了解到django的一个简单处理流程

用户—> urls.py—>sign/views.py—>index.html—>用户

工作流

该图是虫师原图
   但是我们会对这个流程存在疑惑,好像这个流程比较表面,没有涉及到对数据层的操作。没错,这并不是django完整的处理流程,缺失了对数据层的处理,数据层的处理在后续的学习中会学习到。


Django的url

   在django的工作流中,第一层就是url层,那么django的url层是什么处理逻辑呢?又是承担什么责任呢?当Django拿到浏览器的URL地址之后,就会取端口号后面的路径“/index”、“/admin”,这个就是我们平常所说的路径,然后在urls.py文件中匹配views层中对应的处理函数。所以url在django中承担的是接受外部请求、解析外部请求和分配对用业务处理逻辑的角色。

在具体实现中,urls.py文件的路径匹配可以使用正在表达式:

url(r'^index/$', views.index),

代码解析:
   r:由r开头引起的字符串就是声明了后面的字符串都是原始字符,不会转义

   比如写路径:没有 r ,就要写2个 \ \, 有 r ,就正常写\index

   ^:匹配字符串的开头,匹配第一个开头符合的;在多行模式中匹配每一行的开头。

   $:匹配字符串末尾,匹配最后一个末尾符合的;在多行模式中匹配每一行末尾。

Django的views视图

   urls接收的请求就会流转到…/sign/views.py,HelloWorld的urls是流转到index函数。视图是非常重要的中转层,在java的相当于controller层,是连接页面与数据的中间纽带。
   举例:登录的例子来讲,用户在页面上输入了用户名和密码点击登录。那么 request 请求会由视图来接收,如何提取出用户名和密码的数据,如 何用这些数据去查询数据库,再如何将登录成功的页面返回给用户,这些全部由视图层来完成。

Django的templates模板

   模板载体是web页面,Django自带的有模板语言。主要作用是如何展示数据,比如视图层返回的是一个字符串,要如何显示在页面上,返回的对象数组要如何显示等,当然,为了使页面更漂亮需要借助前端技术,比如css、JavaScript等

Django的开发模式:MTV

   java有一种mvc开发模式,model是代表数据存取层,view是视图层,controller是指的系统中根据用户输入并决定使用哪个视图的哪部分

Django的对应mvc的含义:

   M:数据存取部分,由Django数据层

   V:选择显示哪些数据要显示以及怎样显示的部分,由视图和模板处理

   C:根据用户输入委派视图的部分,由 Django 框架根据 URLconf 设置,对给定URL调用适当的Python 函数。

Django的MTV模式:

   Model代表模型,即数据存取层。该层处理与数据相关的事物:

   Template代表模板,也就是表现层,该层处理与表现相关的决定:如何在页面或其他类型文档中进行显示。

   View代表视图层:即业务逻辑层。该层包含存取模型及调取恰当模板的相关逻辑。你可以把它看作模型与模板之间的桥梁。

流程:控制器根据浏览器输入url,根据url匹配相对应的view层的视图函数,view视图将业务请求传递到Model层,model层处理数据库,然后将处理后的结果返回给view层,然后view层返回数据给Template模板,并指定页面,最后展示给用户的是一个HTML页面。


总结

我们使用模板的时候,django的执行顺序是:urls–>views–>html

所以我们在编写的时候反过来的,首先先编写好需要的html页面,然后在views.py构建对应的函数,最后在urls.py添加路径和views的函数值

举例:

简单流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值