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