Django之基本介绍(上)

Django之基本介绍

最近需要对Django做一个面向初学者的介绍PPT,感觉在总结归纳的时候自己也有一些新的收获,因此将Django的基础性内容在此梳理

一、前言

作为没有任何Web开发基础的初学者,笔者准备分上下两篇介绍Django的相关知识,上篇主要介绍Django的基础概念和如何实现一个Django项目以及简单的app,下篇会介绍Django的一些原理、流程和扩展知识(如前端开发)

二、Django概念简介

百度百科对Django的介绍

在百度百科里,开篇就说了这是一个Web应用的框架,那么对于之前没有接触过相关概念的人而言第一个问题就是:什么是“框架”?

2.1 关于“框架”

一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架

个人理解:框架就是实现了某个领域或者系统(如Web系统)的通用完备功能的底层服务。“底层”体现在只为业务功能提供支撑服务,而不会直接实现特定业务;以盖楼房举例,框架就是一栋楼房的钢筋混凝土结构部分,它定义了一栋楼房的位置、楼层数、户型等基础信息。而在这个结构上进行装修才是实现的业务部分。说得更简单点,框架就是帮你实现了很多底层的、基础的、重复但必要的功能的一组代码,在这组代码之后你可以根据你的需求和业务在框架的基础之上进行二次开发

为什么要使用框架?

框架着重于软件的设计重用性和系统的可扩充性,因此缩短大型应用软件系统的开发周期,提高开发质量。说白了,为了“快”!

2.2 MVC设计模式

在开篇的百度百科截图里,第二个陌生的名词就是MVC设计模式。

  • MVC:Model(模型) View(视图) Controller(控制器)。这是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑

  • Model(模型)模型表示的是业务规则,封装的是数据源和所有基于对这些数据的操作。模型往往表示组件的状态和操作这些状态的方法,往往是一系列的公开方法。通过这些公开方法,便可以取得模型端的所有功能

  • View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的

  • Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑

个人理解:核心思想是数据,显示和处理相分离。模型负责数据管理,视图负责数据显示,控制器负责业务逻辑和响应策略

  • 视图部分主要指由HTML、CSS、JS组成的前端网页界面
  • 控制器主要是接受用户的输入并调用模型、视图进行响应,控制器本身不输出任何东西和做任何处理。例如用户在网页上点击“下一页”,控制器就会将“下一页”的所需要的东西发到客户端
  • 模型是应用程序中用于处理应用程序数据逻辑的部分。例如模型对象负责在数据库中存取数据。

三、搭建简单的Django系统

目标:通过实现一个简单的Django系统,展示一个Django系统如何搭建,以及如何为Django系统构建应用;展示Django框架的基本结构和核心功能

所使用的环境及工具:

  • Win10操作系统;
  • Python2.7(Anaconda);
  • Django 1.11;
  • IDE:Pycharm Pro Version2018.2

备注:Django 1.11.x是最后一个支持python2.7的版本,也是LTS版本(Long Term Support:长时间支持版本),之后的2.x均是只支持python3

3.1 创建一个Django工程

在这里插入图片描述

直接在此处选择Django框架即可创建基于Django的工程项目,当然在命令行里通过指令也能创建Django工程项目。创建好之后目录如下图所示:
在这里插入图片描述

3.2 各目录及文件介绍

写成树状结构更清晰:
在这里插入图片描述

在这里对系统(Django)自动创建的每一个目录和文件做简单的解释:

  • 与工程名同名的主文件。我创建的工程名为“demo”,那么系统就会自动为我在工程根目录下创建一个同名文件夹作为系统文件夹,里面存放着Django系统必要的py文件
  • _init_.py是python对包(package)的语法要求,当一个文件里包含该文件时,python会将该文件夹整体视为一个包
  • setting.py是存放Django系统静态配置的地方。所谓静态文件,从python语言的角度来理解就是该工程的存放一些公用的常量的地方。例如,在该文件里有DEBUG这个常量,如果DEBUG = True表示启动Django时会以调试模式进行
  • urls.py这里存放的url映射关系。当系统收到一个请求时,系统会去该文件中根据请求的url信息查找接下来调用哪个函数进行下一步的处理
  • wsgi.py是配置部署信息的文件。当你的Django工程项目已经全部开发完成之后,就需要通过该文件部署到服务器上
  • 存放前端内容的文件夹templates。这里的前端内容泛指html、CSS、JS等文件
  • manage.py存放的是各类cmd指令。当你需要对整个系统进行下达各项指令(如启动、关闭、创建应用)时就是通过该文件进行的

四、创建一个Django应用(app)

4.1 第一步

先进入项目目录下cd project_name ,然后执行下面的命令:python manage.py startapp app_name
在这里插入图片描述

如果成功,结果应该如图所示(可能需要刷新才能看到新建的文件夹):
在这里插入图片描述

4.2 第二步

把我们新定义的app加到settings.py中的INSTALL_APPS

作用:新建的 app 如果不加到 INSTALL_APPS 中的话, Django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件)

在这里插入图片描述

4.3 第三步

为网页构造视图函数:在demo/myapp/views.py文件里定义如下函数:即控制为前端网页呈现什么信息

在这里插入图片描述

在这里我们构建了非常简单的index函数,按照程序员的玄学理念第一个程序要显示(打印)什么出来,一般都用“hello world”,来祈求整个项目都不会出现bug。注意这里函数的第一个参数必须是 request,与网页发来的请求有关,request 变量里面包含get或post的内容,用户浏览器,系统等信息在里面

4.4 第四步

定义视图函数相关的URL(网址):即规定什么网址能访问到刚刚定义的视图函数所给出的信息
在这里插入图片描述

此处使用正则匹配,当URL匹配到“hellowrold”字段时,会跳转到helloworld_view即myapp里的views文件的index函数进行处理

4.5 第五步

启动Django工程,在cmd里输入:python manage.py runserver
在这里插入图片描述

此时Django工程已经启动,在上述指令之后若没有指定地址和端口号时Django会默认使用127.0.0.1:8000进行调试

在浏览器里输入http://127.0.0.1:8000/hellowrold即可看到之前再index函数里定义的内容

注意在代码里我采用的匹配地址是“hellowrold”而不是“helloworld”,旨在说明地址可以任意指定而不需要与其他任何相关(才不是写错了没注意到呢

在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑色之狼

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值