1。Django概述 Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。Django框架的核心组件有:用于创建模型的对象关系映射;为最终用户设计较好的管理界面;URL设计;设计者友好的模板语言;缓存系统。 Django已经成为web开发者的首选框架,是一个遵循MVC设计模式的框架。MVC是Model、View、Controller三个单词的简写,分别代表模型、视图、控制器。Django其实也是一个MTV的设计模式。MTV是Model、Template、View三个单词的简写,分别代表模型、模版、视图。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以Django里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。它们各自的职责如下: 层次 职责 模型(Model),即数据存取层 处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。 模板(Template),即表现层 处理与表现相关的决定:如何在页面或其他类型文档中进行显示。 视图(View),即业务逻辑层 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。2。Django项目环境搭建 搭建Django开发环境,主要有以下六个步骤2。1创建并激活虚拟环境cdD:djangotest自己创建空文件夹存放项目pythonmvenvdjangoenv创建虚拟环境 运行以下命令,激活虚拟环境cdD:djangotestdjangoenvScriptsactivate激活虚拟环境2。2安装django模块1激活虚拟环境cdD:djangotestdjangoenvScriptsactivate2安装django模块pipinstallDjango激活虚拟环境后安装Django模块 上述命令执行后,会把Django模块,安装到了djangoenvLibsitepackages下,也就是说,此Django模块仅仅在虚拟环境中,而不是安装在Python全局环境。目录如下图所示 2。3创建Django项目 安装了Django之后,我们就可以使用Django的管理工具djangoadmin了我们创建一个名称为loginweb的Django项目,命令如下:1激活虚拟环境cdD:djangotestdjangoenvScriptsactivate2创建一个loginweb的项目djangoadminstartprojectloginweb或者pythonmdjangostartprojectloginweb 此命令执行后,会在djenv的同级目录,创建一个名称loginweb的Django项目。目录结构如下图所示: 用Pycharm打开项目,项目结构文件含义如下:外层的loginweb目录:是项目的容器,Django不关心它的名字,我们可以将它重命名为任何我们喜欢的名字里面的loginweb目录:它是一个纯python包。我们可以称呼它为项目的名称,不能随意重命名manage。py:它是Django的一个非常重要的工具,通过它可以调用djangoshell和数据库等,如:创建app应用程序、创建数据库表、清空数据、启动项目等操作settings。py:Django项目的配置文件。包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量urls。py:Django项目的URL路由声明,负责把URL模式映射到应用程序wsgi。py:Web服务器网关接口(PythonWebServerGatewayInterface的缩写),Python应用和Web服务器之间的一种接口,可以看成是一种协议、规范。它是基于Http协议的,不支持WebSoketasgi。py:异步网关协议接口,能够处理多种通用的协议类型,包括HTTP,HTTP2和WebSocket,可以看成ASGI是WSGI的扩展3。Django开发登录功能3。1创建app应用程序 一般一个项目包含多个app应用程序(当然,通用的app也可以在多个项目中使用)下面我们为loginweb项目,创建login1激活虚拟环境cdD:djangotestdjangoenvScriptsactivate2切到django项目中cdloginweb3创建一个叫login的应用djangoadminstartapplogin 上述命令执行后,目录结构如下图所示 3。2注册app app应用程序创建以后,必须把app注册到Django,才能够被Django项目所管理。我们只需要把login应用的名称,配置到loginwebsettings。py文件中即可。如下图所示: 3。3Django视图 Django视图的作用:用于接受Web请求并且返回Web响应的简单Python函数。该函数一般定义在各自应用的views。py文件中。在视图函数中,有两个重要的对象:请求对象和响应对象。下面是一个最简单的视图函数:例:在loginviews。py中fromdjango。httpimportHttpResponseCreateyourviewshere。deflogin(request):returnHttpResponse(登录页面) 其中:request参数为必填参数,代表用户的请求,它是HttpRequest对象3。4Django路由 Django的路由定义文件为:项目目录urls。py文件。我们所有的路由配置,都以列表的方式,定义在urls。py文件中,添加我们想要的路由例:在loginweburls。py中fromdjango。contribimportadminfromdjango。urlsimportpathfromloginimportviewsurlpatterns〔path(admin,admin。site。urls),path(login,views。login)〕3。5启动Django项目 在开发环境下,我们需要在本地启动Django项目,来开发与调试我们的代码。启动Django项目命令如下:pythonmanage。pyrunserver〔port〕〔port〕为应用访问端口,可以缺省不写,默认为8000。 此时,我们就可以用浏览器访问我们的项目了。结果如下图所示 访问我们写好的路由 3。6登录功能改良 在login底下新写建一个templates目录,存放编写的html前端页面 login。html!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8title登录页面titlestylebody{textalign:center;}styleheadbodybodyhtml index。html!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8title这里是主页titlestyleh1{color:red}styleheadbodyh1这里是主页h1bodyhtml 修改试图函数fromdjango。shortcutsimportrender,redirectCreateyourviewshere。deflogin(request):ifrequest。methodPOST:usernamerequest。POST。get(username)passowrdrequest。POST。get(password)ifusernamesongqinandpassowrd123456:returnredirect(index)else:returnrender(request,login。html,{error:用户名或密码错误})returnrender(request,login。html)defindex(request):returnrender(request,index。html) 修改loginweburls。pyfromdjango。contribimportadminfromdjango。urlsimportpathfromloginimportviewsurlpatterns〔path(admin,admin。site。urls),path(login,views。login),path(index,views。index)〕 再次启动Django项目pythonmanage。pyrunserver〔port〕〔port〕为应用访问端口,可以缺省不写,默认为8000。 访问http:127。0。0。1:8000login项目 输入不是用户名密码不是songqin123456 输入songqin123456点击登录跳转到主页面