1.引言
Django是一种基于Python的Web开发框架。
那先来看下,什么是Web开发
Web开发指的是开发基于B/S(Brower/Server,浏览器/服务器)架构,通过前后端的配合,将后台服务器的数据在浏览器上展现给前台用户的应用。比如将电子购物网站的商品数据在浏览器上展示给客户,在基于浏览器的学校系统管理平台上管理学生的数据,监控机房服务器的状态并将结果以图形化的形式展现出来等等。
Web框架致力于解决一些共同的问题,为Web应用提供通用的架构,让用户专注于网站应用业务逻辑的开发,而无须处理网络应用底层的协议、线程、进程等方面的问题。这样能大大提高开发者的效率和Web应用程序的质量。
2.Django
Django是一个由Python编写的具有完整架站能力的开源Web框架。采用了MVT的软件设计模式,即模型Model,视图View和模板Template。使用Django,只要很少的代码,Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。
Django框架的核心包括:一个 面向对象 的映射器,用作数据模型(以Python类的形式定义)和关系性数据库间的介质;一个基于正则表达式的URL分发器;一个视图系统,用于处理请求;以及一个模板系统。
核心框架中还包括:
- 一个轻量级的、独立的Web服务器,用于开发和测试。
- 一个表单序列化及验证系统,用于HTML表单和适于数据库存储的数据之间的转换。
- 一个缓存框架,并有几种缓存方式可供选择。
- 中间件支持,允许对请求处理的各个阶段进行干涉。
- 内置的分发系统允许应用程序中的组件采用预定义的信号进行相互间的通信。
- 一个序列化系统,能够生成或读取采用XML或JSON表示的Django模型实例。
3.MVC及MTV设计模式:
在目前基于Python语言的几十个Web开发框架中,几乎所有的全栈框架都强制或引导开发者使用MVC设计模式。所谓全栈框架,是指除了封装网络和线程操作,还提供HTTP、数据库读写管理、HTML模板引擎等一系列功能的Web框架,比如Django、Tornado和Flask。
3.1 MVC设计模式
MVC把Web框架分为3个基础部分:
模型(Model):负责业务对象与数据库的映射(ORM),这个模块就是Web框架和数据库的交互层。
视图(View):负责数据的显示和呈现,是对用户的直接输出。
控制器(Controller):负责从用户端收集用户的输入,调用模型和视图完成用户的请求。
3.2 MTV设计模式
MTV和MVC本质上是一样的,将视图分成View模块和Template模块两部分,将动态的逻辑处理与静态的页面展现分离开。而Model采用了ORM技术。
模型(Model):和MVC中的定义一样
视图(View):负责业务逻辑,并在适当时候调用Model和Template。
模板(Template):负责如何把页面展示给用户(html)。
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template。
一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。
4.Django安装
4.1pip安装
pip install django
4.2验证安装
>>>import django >>>print(django.get_version()) 2.2 # 或者使用pip list命令,查看是否存在Django模块
4.3创建一个Django工程
django-admin startproject mysite
这样就会在当前目录下创建一个叫做mysite的Django项目,目录结构如下:
----mysite\ #目录与Django无关,只是你项目的容器,可以任意命名 |----manage.py #manage.py ----- Django项目里面的工具,用于与Django进行不同方式的交互脚本,通过它可以调用django shell和数据库等。 |----mysite\ #内层的mysite/目录是真正的项目文件包裹目录,它的名字是你引用内部文件的包名,例如:mysite.urls。 | |----settings.py #settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。 | |----urls.py #urls.py ----- 路由文件,所有的任务都是从这里开始分配,相当于Django驱动站点的内容表格。 | |----wsgi.py #一个基于WSGI的web服务器进入点,提供底层的网络通信功能,通常不用关心。 | |----__init__.py #一个定义包的空文件。
4.4创建一个名为“polls”的app应用
进入mysite项目根目录,确保与manage.py
文件处于同一级,输入下述命令:
python manage.py startapp polls
4.5启动django项目
python manage.py runserver
打开浏览器,在地址栏输入127.0.0.1:8000
,如果看到如下的界面,说明Django就启动起来了!
4.6启用开发服务器
Django提供了一个用于开发的web服务器,使你无需配置一个类似Ngnix的生产服务器,就能让站点运行起来。这是一个由Python编写的轻量级服务器,简易并且不安全,因此不要将它用于生产环境。
进入mystie项目的根目录,输入下面的命令:
python manage.py runserver # Django的开发服务器(以后简称服务器)默认运行在内部的8000端口,如果你想指定端口,请在命令中显示给出: python manage.py runserver 8080 # 如果想修改服务器的ip地址,请按下面的方式运行命令,比如: python manage.py runserver 0:8000 # 0是0.0.0.0的简写,Django将运行在0.0.0.0:8000上,整个局域网内都将可以访问站点,而不只是是本机。
注意:Django的开发服务器具有自动重载功能,当你的代码有修改,每隔一段时间服务器将自动更新。但是,有一些例如增加文件的动作,不会触发服务器重载,这时就需要你自己手动重启。
4.7 Django 项目环境终端(模型API)
python manage.py shell
你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。
4.8其他常用命令
# 记录模型文件的修改(保存为一个“迁移”) python manage.py makemigrations # 对数据库执行真正的迁移动作 python manage.py migrate