Dango之初识安装

摘要:
1.MVC和MTV框架1.1 MVC Web服务器开发领域中著名的MVC模式。所谓MVC就是将Web应用程序划分为模型(M)。控制器接受用户的输入并调用模型和视图以完成用户的请求。它的作用是将URL页面请求分发给不同的视图进行处理。视图调用相应的模型和模板。

1. MVC和MTV框架

1.1MVC

Web服务器开发领域里著名的MVC模式

所谓MVC就是把Web应用分为模型(M)

控制器(C)视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示:

Dango之初识安装第1张

1.2MTV

Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:

  • M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
  • T 代表模板 (Template):负责如何把页面展示给用户(html)。
  • V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。

  除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:

Dango之初识安装第2张

一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

2.Django 下载安装

pip3 install  django

2.1 pycharm创建项目

Dango之初识安装第3张

2.2 目录结构

Dango之初识安装第4张

2.3 启动改端口

Dango之初识安装第5张

2.4 手动创建项目

手动创建项目,常用于服务器部署

创建项目

django-admin startproject mysite   创建了一个名为"mysite"的Django 项目

在项目目录下创建应用

python manage.py startapp blog

需要在 settings,py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01'  #手动添加 pycharm创建的不需要
]

启动项目

python manage.py runserver  8080    

默认端口为 8080

3. 创建django简单实例

编写urls.py

from django.contrib import admin
from django.urls import path
from  app01  import  views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
]

视图文件views.py

def index(request):
    return render(request,"index.html")

模版 templates下新建index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
    213213
</div>
</body>

</html>

启动

Dango之初识安装第6张

免责声明:文章转载自《Dango之初识安装》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇单麦克风AI降噪模块及解决方案GDB高级使用方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

时隔半年,重新尝试番茄

我有时候在思考,到底自己还有哪些缺点和坏习惯?就算是自己找到了,自己有没有有效的方法进行纠偏? 我一天的工作效率到底是多少? 领导分配给我们组任务是负责产品中心项目和任务调度项目,今年下半年又有一个运维和开发工作更重的API平台。 我和一个有接近一年经验的毕业生暂时负责这三个项目。 这是很正常的现象,随着我们的经验的积累同时在公...

MyBatis:条件构造器QueryWrapper方法详解

QueryWrapper 说明:      继承自 AbstractWrapper ,自身的内部属性 entity 也用于生成 where 条件及 LambdaQueryWrapper, 可以通过 new QueryWrapper().lambda() 方法获取. 测试用表: 1. eq、ne 说明: eq:等于,ne:不等于 测试: @Test pub...

oracle grant授权的理解

GRANT 名称   GRANT — 赋予一个用户,一个组或所有用户访问权限   GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group| username}   输入   privilege   可能的权限有:      SELECT   访问声明的表/视图的所有列/字段...

Mybatis之批量操作

首先批量操作的优点是:大大的提高查询的效率。 举个简单的例子:如果在程序中遍历来执行sql的话,这种情况就是有多少行数据就要执行多少条sql,这样导致的效率将是非常低。 如下可能需要40s insert into USER (name,age) values ('张三','33'); insert into USER (name,age) values (...

项目经验分享

转载自:http://blog.csdn.net/luohuacanyue/article/details/12903189 这篇文章里说的内容,其实都是老生常谈,但是里面有一点我觉得非常有道理,在做完一个项目之后,我通常想的是,这个项目中有哪些不足,而不是——“怎样把这个项目做的更好”,两者看上去没什么区别,其实有很大区别,因为出发点不同。 凡事都应该是...

Boost学习之正则表达式regex

boost::regex类为C++提供了完整的正则表达式支持,并且已被接收为C++0x标准库。它同时也在Boost库中扮演着极重要的角色,不少Boost子库都需要它的支持,有不少人甚至就是为了它才下载使用Boost的。 注意使用Boost.Regex需要预先编译 完整编译请参考本站编译Boost的文章如果只要编译Regex库,有两种方法(参考链接):...