一、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. apache安装 windows

    进入cmd cd apache目录 httppd.exe ?显示全部命令 httppd.exe -k install 安装apache httppd.exe -k start 启动 检测是否运行 浏览 ...

  2. react-router + redux + react-redux 的例子与分析

    一个 react-router + redux  + react-redux 的例子与分析 index.js  import React from 'react' import ReactDom fr ...

  3. The fourteenth day

    A man is not old as long as he is seeking something. A man is not old until regrets take the place o ...

  4. 拼接sql语句时拼接空字符串报sql错误

    先上代码(php): $id_card=""; $sql = "select * from people where id_card=".$id_card; 看 ...

  5. SQL-有关数据库的提问

    各位大侠,小弟初来乍到,对sql , pl/sql ,t/sql概念比较模糊,有以下几个问题希望能帮我解答: 1:plsql到底是语言还是工具?我看到有人说oracle的存储过程是拿plsql写的,那 ...

  6. 官方发布PHP语法规范

    PHP语言已经存在了超过20年,显然是世界上最流行的编程语言之一.PHP绝对是互联网服务器端web编程的通用语. 虽然有广泛的user-documentation,PHP语言总是错过语言规范.这并不是 ...

  7. IOS 控制当前控制器支持哪些方向

    #pragma mark - 实现这个方法来控制屏幕方向 /** * 控制当前控制器支持哪些方向 * 返回值是UIInterfaceOrientationMask* */ - (NSUInteger) ...

  8. POJ-2002 Squares---绕点旋转+Hash

    题目链接: https://vjudge.net/problem/POJ-2002 题目大意: 有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少. 相同的四个点,不同顺序构成的正方形视 ...

  9. 前端高质量知识(二)-JS执行上下文(执行环境)详细图解Script

    先随便放张图 我们在JS学习初期或者面试的时候常常会遇到考核变量提升的思考题.比如先来一个简单一点的. console.log(a); // 这里会打印出什么? var a = 20; PS: 变量提 ...

  10. DP,得到最多苹果,(POJ2385)

    题目链接:http://poj.org/problem?id=2385 题意: 牛在两棵苹果树下收集苹果,牛只能在这两棵树之间走动w次,在t时刻,某棵树会掉下苹果. 解题报告: ///dp[t][w] ...