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. 接受请求 :请求头和请求体 & request.POST request.GET d. 响应: 响应头: location:www.baidu.com 和 响应体 e. 断开连接 浏览器: socket客户端 b. 浏览器发送: GET请求: "GET /index.html http1.1 User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x6.. Accept-Encoding:gzip " POST请求: "POST /index.html http1.1 User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x6.. Accept-Encoding:gzip user=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