MTV/MVC/Django

MVC

根据网上(百度百科)查到的资料,是这个意思:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。很高大上哈,其实并没有,它就是:一种文件的组织和管理形式!把不同类型的文件放到不同的目录下的一种方法。当然,它带来的好处有很多,比如前后端分离,松耦合等等,就不废话了。

MTV

有些web框架(Django)觉得MVC的字面意思很别扭,就给它改了一下。view不再是HTML相关,而是主业务逻辑了,相当于控制器。html被放在Templates中,称作模板,于是MVC就变成了MTV。这其实就是一个文字游戏,和MVC本质上是一样的,换了个名字和叫法而已。

知道了这个,也就初步知道了Django属于什么类型的web框架了,因为django的流程是这样的,图片是借的

呐,就这么个流程,我在文章里面也有写,这就不多说了。

既然如此,django是怎么用的,都有什么东西?现在别管django了,也别管什么MVC/MTV了,先看这个:

web框架:Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。其类型有基于请求的和基于组件的两种框架。

好了,知道了web框架,那么就要知道web,啥是web?百科上给的太多了,我缩写一下:web就是socket,它的生命周期是这样的:

Http请求本质
		Django程序:socket服务端
			a. 服务端监听IP和端口
			c. 接受请求
					\r\n\r\n:请求头和请求体
					\r\n
					&
					request.POST
					request.GET
			d. 响应:
					响应头: location:www.baidu.com
					和
					响应体
			e. 断开连接
					
		浏览器:    socket客户端
			b. 浏览器发送:
				GET请求:
					"GET /index.html http1.1\r\nUser-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x6..\r\n\r\nAccept-Encoding:gzip\r\n\r\n"
				POST请求:
					"POST /index.html http1.1\r\nUser-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x6..\r\n\r\nAccept-Encoding:gzip\r\n\r\nuser=cqz&hobby=chen"
		
			e. 断开连接

完事儿了,现在说Django,理论知识自行百度,我这里先简单说一下其他操作:

urls.py
网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。
views.py
处理用户发出的请求,从urls.py中对应过来, 通过渲染templates中的网页可以将显示内容,比如登陆后的用户名,用户请求的数据,输出到网页。
models.py
与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候 你可以不使用。
forms.py
表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,当然你也可以不使用。
templates 文件夹
views.py 中的函数渲染templates中的Html模板,得到动态内容的网页,当然可以用缓存来提高速度。
admin.py
后台,可以用很少量的代码就拥有一个强大的后台。
settings.py
Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等

上面是简单的django的组成,再往下看:

新建一个 django project:
    django-admin.py startproject project_name
    django-admin startproject project_name

新建 app
    先进入项目目录下,cd project_name
    然后执行下面的命令
    python manage.py startapp app_name
    django-admin.py startapp app_name

创建数据库表 或 更改数据库表或字段
Django 1.7.1及以上 用以下命令
    创建更改的文件:python manage.py makemigrations
    将生成的py文件应用到数据库:python manage.py migrate
使用开发服务器(由于性能问题,不推荐使用)
    python manage.py runserver # 默认启动本地地址和端口
    python manage.py runserver IP地址# 启动指定地址和默认端口
    python manage.py runserver IP地址 端口# 启动指定地址和指定端口

清空数据库:
    python manage.py flush(此命令会询问是 yes 还是 no, 选择 yes 会把数据全部清空掉,只留下空表。)
创建超级管理员:
    python manage.py createsuperuser --username 名字
    按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名和密码必填
修改用户密码可以用:
python manage.py changepassword username

  

猜你喜欢

转载自www.cnblogs.com/ArkhamKnight/p/9265131.html