django新手教程(一)

简介: django新手教程(一)

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

2675246757e42a023767ade62cfa31b7.png

Django框架的优点

强大的数据库功能

用 python 的类继承,几行代码就可以拥有一个丰富、动态的数据库操作接口(API),如果需要,你也能执行 SQL 语句ORM(Object-Relational Mapping“对象-关系-映射”),它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。

自带强大的后台功能

在admin.py中写入几行简单实现功能代码就能实现管理员的权限。

优雅的网址

在urls.py中用正则匹配网址,传递到对应的函数,更加简单的编写路由。

具有模板系统

模板系统设计简单,易扩展。代码、样式分开设计,有助于查找和修改。

高效的缓存系统

Django和memcached、redis或者其他的缓存系统可联用,页面加载速度提升。

安装pip

pip是Python的包管理工具。使用它可方便下载各种Python的插件库。

如果电脑中没有pip可点击:pip · PyPI

下载最新的pip压缩包并进行解压,进入解压的目录。

在目录上方输入cmd然后回车进入命令行。

22fdf9971cabe8896dab74693a453fcb.png

执行安装命令,在命令行输入:

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变量

fb32159d3d3b673121bb26f0a0852e69.png

pip卸载Django

如需卸载当前版本的Django,那么需要在命令行输入命令:

pip uninstall django

如果要更换Django版本,需要先卸载当前版本,然后再下载新版本。

创建一个Django项目

创建一个名为project的Django项目,在cmd命令行输入

django-admin startproject project

输入命令完会生成一个名叫project的项目包,包内一个manage.py文件和项目名同名的project包。

  • manage.py文件: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。

project包里面我们可以查看到的目录结构:

d55c6bd1e2ad13217e201c83d31fa00f.png

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页面。

16784a3d2f6359190aec3b8f971d38ad.png

在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。

29b60b2720ff92f5bccee47ba67b3cc6.gif


这时,我们可以看见:‘https://127.0.0.1:8000/’,它表示服务器成功运行。

在浏览器访问‘https://127.0.0.1:8000/’,你将会看到如下页面。

77d9d3e0ac8df5af0b17c5817142e65b.png

127.0.0.1表示在本机访问,可以用localhost替代。

注意:不要关闭cmd窗口,否则服务器也将关闭。

相关文章
|
7月前
|
前端开发 JavaScript BI
Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)
使用echarts和highcharts图表库实现折线图、柱状图、饼图和数据集图
171 2
|
7月前
|
存储 安全 网络协议
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
64 0
Python 教程之 Django(9)对模型中的字段进行验证
|
7月前
|
API 数据库 Python
Python 教程之 Django(8)在 Django 管理界面中渲染模型
Python 教程之 Django(8)在 Django 管理界面中渲染模型
53 0
Python 教程之 Django(8)在 Django 管理界面中渲染模型
|
7月前
|
SQL 前端开发 JavaScript
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
67 0
|
7月前
|
SQL 存储 API
Python 教程之 Django(7)Django 模型
Python 教程之 Django(7)Django 模型
87 1
Python 教程之 Django(7)Django 模型
|
4月前
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
4月前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
4月前
|
Linux Shell 数据库
python Django教程 之 安装、基本命令、视图与网站
python Django教程 之 安装、基本命令、视图与网站
|
6月前
|
SQL 前端开发 关系型数据库
28. Python Web 编程:Django 基础教程
28. Python Web 编程:Django 基础教程
55 2
|
7月前
|
存储 中间件 数据安全/隐私保护
Django教程第3章 | Web开发实战-登录
登录案例、Djiango中间件【2月更文挑战第23天】
137 2
Django教程第3章 | Web开发实战-登录