一、MVC与MTV模型 

在web开发领域里著名的MVC模式,所谓MVC就是把web应用分为模型(M)、控制器(C)、视图(V)三层,达到了解耦的效果。

一次完整的请求如图:

但是django用的是MTV模式,本质是一样的,也是为了各组件之间保持松耦合关系,只是定义上有些不同。

  1. M 代表模型(Model):负责进行存取数据和对数据库的关系映射(ORM)
  2. T 代表模版(Template):负责渲染和展示页面给用户(HTML)
  3. V 代表视图(View):负责业务逻辑,在适当的时候调用Model和Template

除此之外、还需要一个URL分发器,将用户发送的每一个请求逐一匹配、再分发给不同的View处理。

整个流程如下图:

一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求如果匹配到了url,就会去执行url对应的函数,如果不涉及数据调用。那这个时候函数返回一个模版(也就是网页)给用户。如果需要调取数据,函数调用模型,模型去数据库查找数据并返回查询结果。视图函数把返回的数据填充到模版文件中渲染,最后返回给网页给用户。

二、Django安装和基本命令 

1、下载

pip install django

2、创建django项目

django-admin.py startproject mysite

两条命令执行完毕后、会生成目录结构如下

manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。
settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
urls.py ----- 负责把URL模式映射到应用程序。

3、在项目目录下创建应用

python manage.py startapp blog

命令执行后、项目会多出一个应用文件夹、目录结构如下

4、启动Django项目

python manage.py runserver 0.0.0.0:8080 (IP  +  PORT 不写默认127.0.0.1:8000)

项目已启动、快去浏览器访问:http://127.0.0.0.1:8080

因为是django2.0版本,外观美观了许多!

三、一个简单的返回当前时间Demo 

新建一个项目

1、urls.py 加一条url

 from django.contrib import admin
from django.urls import path
from app01 import views # 导入app01项目中的视图函数 urlpatterns = [
path('admin/', admin.site.urls),
path(r'timer/',views.timer), # 127.0.0.1:8001/timer 会执行 views.py 文件中的timer()函数
]

2、views.py 中定义一个timer()函数

 from django.shortcuts import render
import datetime # 导入日期时间模块 # Create your views here.
def timer(request):
t = datetime.datetime.now().strftime('%Y-%m-%d %X') # 当前时间对象
return render(request, 'timer.html', {"time": t}) # render() django的三个响应对象之一,渲染页面用的,第一个参数是固定的,第二个跟要显示的html文件,第三个跟要返回的数据。在html文件里渲染时间对象并展示页面给用户看

3、项目文件下有个template文件、存放html文件的。timer.html

 <!DOCTYPE html>
<html lang="zh_CN">
<head>
<meta charset="UTF-8">
<title>动态获取当前时间</title>
</head>
<body> <!--固定语法。视图函数传来一个字典{"time":t} 这里双括号获取-->
<h4>当前时间:{{ time }}</h4> </body>
</html>

4、执行

5、浏览器打开看看吧!

004---Django简单示例的更多相关文章

  1. celery Django 简单示例

    一.目录结构 二.创建worker文件夹 __init__.py # -*- coding:utf-8 -*-import osfrom celery import Celery, platforms ...

  2. web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例

    Django基础一之web框架的本质 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于Django实现的一个简单 ...

  3. Ubuntu18.04安装和配置Django,并实现简单示例

    一.前言(系统,django介绍,window.mac.linux简单区别) Django是python开发过程最重要的web框架.因为在看的Django教学视频是在mac下安装的,我自己用的是Lin ...

  4. Linux下的C Socket编程 -- server端的简单示例

    Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...

  5. C# 构建XML(简单示例)

    C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...

  6. 根据juery CSS点击一个标签弹出一个遮罩层的简单示例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  7. ACEXML解析XML文件——简单示例程序

    掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...

  8. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

  9. spring-servlet.xml简单示例

    spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...

  10. SignalR 简单示例

    一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...

随机推荐

  1. RESTful API设计基本原则

    REST四个基本原则:1.使用HTTP动词:GET POST PUT DELETE:2.无状态连接,服务器端不应保存过多上下文状态,即每个请求都是独立的:3.为每个资源设置URI:4.通过XML JS ...

  2. ComponentOne、Spread、ActiveReports 5折起 加入惊喜惠

    慧都十周年,GrapeCity也来共襄盛举,旗下三大产品产品线齐齐参与.界面控件套包ComponentOne.Excel表格控件Spread与报表开发工具ActiveReports,指定授权5折起加入 ...

  3. git 获取领先落后的命令

    git --git-dir=/data/usr/local/gerrit-site/git/aixuexi-admin.git rev-list --left-right --count master ...

  4. Azure进阶攻略丨如何驾驭罢工的Linux虚机网卡?

    很多人的生活中,流传着一个屡试不爽,据说可以解决任何问题的百宝锦囊: 所以经常可以听到类似这样的对话: -我的电脑咋上不去网了? -重启一下电脑. -还是不行呢! -重启一下路由器. -怎么还不行-_ ...

  5. Can't connect to any repository.Read timed out after 30,000 ms

    解决方法:

  6. Html + JS : 点击对应的按钮,进行选择是隐藏还是显示(用户回复功能)

    例如: 当我点击按钮1时,点击第一下进行显示This is comment 01,点击第二下隐藏This is comment 01 当我点击按钮2时,点击第一下进行显示This is comment ...

  7. hp zbook15G2 nVidia K1100M显卡在ubuntu linux下闪屏问题

    我的hp zbook15G2有一块nVidia K1100M显卡. 故障现象 安装ubuntu 16.4之后,屏幕出现闪烁现象. 重启后,进入bios,屏幕依然在闪烁. 再重启,进入另一块硬盘的win ...

  8. 运行npm update等命令出错后如何分析问题根源

    我今天工作时,在当前前端项目工作目录下执行命令npm update 结果遇到如下错误:registry error parsing json npm ERR! Unexpected token < ...

  9. Javascript作业—数字转化为大写

    开始学javascript,写作业. <script type="text/javascript"> function toChinese(money){ var ch ...

  10. POJ-2503 Babelfish---map或者hash

    题目链接: https://vjudge.net/problem/POJ-2503 题目大意: 就像查找一本字典,根据输入的条目和要查询的单词,给出查询结果(每个单词长度不超过10) 解题思路: ma ...