Django简介
Django是开源的、大而且全的Web应用框架。
它独具特色,采用了MTV设计模式。
它也是一款用来构建服务器的框架。这一概念如何理解呢?
应用程序有两种模式:C/S、B/S。
C/S是客户端与服务器端,这类程序一般能独立运行。
B/S是浏览器端和服务器端应用程序,这类应用程序一般要借助谷歌、火狐等浏览器来运行。
Web应用程序一般用B/S模式。
在网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端。而Django正是这样一种用来构建服务器的框架。
Django的设计模式介绍
Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。
Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架。
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
Django框架的优点
强大的数据库功能
用 python 的类继承,几行代码就可以拥有一个丰富、动态的数据库操作接口(API),如果需要,你也能执行 SQL 语句ORM(Object-Relational Mapping“对象-关系-映射”),它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。
自带强大的后台功能
在admin.py中写入几行简单实现功能代码就能实现管理员的权限。
优雅的网址
在urls.py中用正则匹配网址,传递到对应的函数,更加简单的编写路由。
具有模板系统
模板系统设计简单,易扩展。代码、样式分开设计,有助于查找和修改。
高效的缓存系统
Django和memcached、redis或者其他的缓存系统可联用,页面加载速度提升。
安装pip
pip是Python的包管理工具。使用它可方便下载各种Python的插件库。
如果电脑中没有pip可点击:pip · PyPI
下载最新的pip压缩包并进行解压,进入解压的目录。
在目录上方输入cmd然后回车进入命令行。
执行安装命令,在命令行输入:
python setup.py install
pip安装Django
安装
通过pip安装Django。
在cmd命令行中输入下面代码,然后回车进行下载安装。
pip install Django==2.2.6 -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
其中2.2.6为版本号,-i和后面是表示使用国内镜像进行下载。
验证安装成功
在cmd命令行中输入
pip list
然后回车,查看列表的版本为2.2.6的Django,则安装成功。
配置环境变量
我们需要将Django配置进环境变量,才可以使用django-admin命令(后续会使用到)
首先我们要找到Django的安装位置,可能的安装位置有如下两处:
C:\Users\Administrator\AppData\Roaming\Python\Python310\Scripts(因每个人使用的Windows用户不一样,administrator也有可能是其他内容。python310为小编安装的python版本号,不同版本有所区别)
或者C:\Program Files\Python310\Scripts(python310同上)
在该文件夹下有一个django-admin.py 或 django-admin.exe 文件,有该文件的文件夹为django的安装位置,将这个安装位置(是一个文件夹路径)配置到环境变量中:
环境变量的配置方式:右键我的电脑->属性->高级系统设置->环境变量->系统变量->path变量
pip卸载Django
如需卸载当前版本的Django,那么需要在命令行输入命令:
pip uninstall django
如果要更换Django版本,需要先卸载当前版本,然后再下载新版本。
创建一个Django项目
创建一个名为project的Django项目,在cmd命令行输入
django-admin startproject project
输入命令完会生成一个名叫project的项目包,包内一个manage.py文件和项目名同名的project包。
- manage.py文件: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
project包里面我们可以查看到的目录结构:
project/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
project/settings.py: 该 Django 项目的设置/配置。
project/urls.py: 该 Django 项目的 URL 声明; 这是项目的根路由。
project/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目
settings.py项目配置文件
创建完项目后,在项目同名的project目录内有一个settings.py 文件,这个配置文件用于配置和管理Django项目的运维信息。
settings.py配置文件中的所有配置项都是大写的,项目创建时,就初始化了一些默认配置,这些默认配置承载着最基础的项目信息。
其中常用的配置项有:
DATABASES :数据库配置
TEMPLATES:配置HTML页面的模板地址templates
STATICFILES_DIRS :配置静态文件
MIDDLEWARE :配置中间件
DEBUG:默认为True,项目上线时改为False
ALLOWED_HOSTS:限定请求中的host值
urls.py路由系统
Django的路由系统作用是使views中处理数据的函数与请求的url建立映射关系。
请求到来之后,根据urls.py里的关系条目,查找到与请求对应的处理方法,从而返回数据给客户端http页面。
在Django1.x版本中url映射一般是一条正则表达式,“^” 字符串的开始,“$“ 字符串的结束。项条目从头开始进行逐一对比,一旦遇到匹配项,立即执行该条目映射的视图函数或二级路由,其后的条目将不再继续匹配。因此,url路由的编写顺序至关重要!
在Django1.x中,一个url映射条目至少有两个参数,一个是正则规则,一个是视图函数,代码如下:
from django.conf.urls import url # url()方法导入方式 url(r'^test/$',views.test) # django2中使用re_path替换url
在Django2.x版本中路由映射使用 path() 或 re_path() 方法,path()没有了正则的那些规则,直接匹配字符串,re_patah() 用法和url()一样,path()的运用如下:
from django.urls import path,re_path # path()方法的导入方式 path('test/',views.test) # 不需要使用 ^ $ 等正则规则
注意:本课程中使用re_path()的正则匹配,可自行选择path()或re_path()。
当有多个应用(App)时,我们会在每个App里,各自创建一个urls.py路由模块,然后从根路由出发,将app所属的url请求,全部转发到相应的urls.py模块中。
用于开发的简易服务器
让我们来确认一下你的 Django 项目是否真的创建成功了。
下面将运行服务,访问这个项目。
如果你的当前目录不是外层的project目录的话,请切换到此目录,然后运行下面的命令:
python manage.py runserver 8000
其中:
- 8000为Django默认监听端口,可以省略。
- 如果要使用其他端口可以将8000替换。
- 在windows下Python可以简写为py。
这时,我们可以看见:‘https://127.0.0.1:8000/’,它表示服务器成功运行。
在浏览器访问‘https://127.0.0.1:8000/’,你将会看到如下页面。
127.0.0.1表示在本机访问,可以用localhost替代。
注意:不要关闭cmd窗口,否则服务器也将关闭。