Django框架的介绍
- python语言编写的开源web框架
- 早期Django主做新闻和内容管理
- 一个重量级的 Python web框架,Django 配备了常用的大部分组件
- Django的用途[后端开发,服务器开发]
- 网站后端开发
- 微信公众号,微信小程序等后台开发
- 基于Http/HTTPS协议的后端服务器开发
- tornado/gevent 4层
- 在线语音/图像识别服务器
- 在线第三方身份验证服务器等
Django的安装
-
查看已安装版本
>>> import django >>> print(django.VERSION)
-
安装
- 在线安装
$ sudo pip3 install django
安装django的最新版本- 或
$ sudo pip3 install django[==版本]
安装django的指定版本- 如:
$ sudo pip3 install django==3.2.12
- 在线安装
-
Django的卸载
$ pip3 uninstall django
-
Django的开发环境
- 不同python版本对于不同的Django版本,需要找到可靠稳定且能支持目前你python的版本
Django框架开发
创建项目的指令
- $ django-admin startproject 项目名称 --> 项目文件夹
- 运行
- 当创建完项目时,会出现一堆文件
$ cd 项目名称 $ python3 manage.py runserver
Django项目的目录结构
```shell
$ django-admin startproject mysite1
$ tree mysite1/
mysite1/
├── manage.py
└── mysite1
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 directory, 5 files
```
- 补充说明
- 版本不同所以会出现不同的目录结构[文件可能不同]
- 运行后会出现一个_pycache的文件,这个是运行后缓冲的字节码文件.
- 项目结构解析
-
manage.py
- 项目管理的主程序,在开发阶段用于管理整个项目的开发运行的调式
- manage.py 包含项目管理的子命令,如:
python3 manage.py runserver
启动服务
-
mysite1 项目包文件夹
- 项目包的主文件夹(默认与项目名称一致)
1.__init__.py
- 包初始化文件,当此项目包被导入(import)时此文件会自动运行 2. `wsgi.py` - WSGI 即 Web Server Gateway Interface 与 nginx 相连 - WEB服务网关接口的配置文件,仅部署项目时使用 3. `urls.py` - 项目的基础路由配置文件,所有的动态路径必须先走该文件进行匹配 4. `settings.py` - Django项目的配置文件, 此配置文件中的一些全局变量将为Django框架的运行传递一些参数 - setting.py 配置文件,启动服务时自动调用, - 此配置文件中也可以定义一些自定义的变量用于作用全局作用域的数据传递
-
URL 介绍
-
url 即统一资源定位符 Uniform Resource Locator
-
作用:
- 用来表示互联网上某个资源的地址。
-
说明:
- 互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
-
URL的一般语法格式为:
-
https://www.djangoproject.com/download/
protocol :// hostname[:port] / path [?query][#fragment]
-
如:
http://tts.tmooc.cn/video/showVideo?meuId=657421&version=AID201908#s
-
说明:
- protocol(协议)
- http 通过 HTTP 访问该资源。 格式
HTTP://
- https 通过安全的 HTTPS 访问该资源。 格式
HTTPS://
- file 资源是本地计算机上的文件。格式:
file:///
- …
- http 通过 HTTP 访问该资源。 格式
- hostname(主机名)
- 是指存放资源的服务器的域名系统(DNS) 主机名、域名 或 IP 地址。
- port(端口号)
- 整数,可选,省略时使用方案的默认端口;
- 各种传输协议都有默认的端口号,如http的默认端口为80。 HTTPS 443
- path(路由地址)
- 由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。路由地址决定了服务器端如何处理这个请求
- query(查询)
- 可选,用于给动态网页传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。
- fragment(信息片断)
- 字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。
- 注: [] 代表其中的内容可省略
- protocol(协议)
视图函数(view)
- 视图函数是用于接收一个浏览器请求并通过HttpResponse对象返回响应的函数.此函数可以接收浏览器请求并根据业务逻辑返回相应的内容给浏览器.
- 语法格式
def 视图函数名(request,[其他参数]): #获取浏览器参数与数据 return HttpResponse('响应内容') #返回给浏览器对象
- 视图函数的参数
- request 是一个对象,封装了浏览器的请求信息
- 视图函数的返回值
- 必须是HttpResponse对象
- 此对象封装了响应的内容,响应的状态码,响应头等信息
- 视图处理函数
views.py
,如果没有需要创建它# file <项目名>/views.py from django.http import HttpResponse def page01_view(request): html = "<h1>这是第一个页面</h1>" return HtttpResponse(html)
Django中的路由配置
- settings.py 中的
ROOT_URLCONF
指定了主路由配置列表urlpatterns的文件位置 - urls.py 主路由配置文件
# filr:<项目名>/urls.py
from . import views
urlpatterns = [
path('admin/', admin.site.urls), # 参数1是路由 ,参数2是视图(由导入的模块引用)
path('view/', views.page01_view ), # 导入了在视图函数中写得page01.view
- 终端运行
# 当view函数和url.py都写了后,可以运行起来看效果 # 切换路径 到mange.py同级目录下 $ cd [路径] $ python3 manage.py runserver # 点击出现的链接或者复制到浏览器上,就会出现 这是第一个页面的标题
-
url() 函数
- 用于描述路由与视图函数的对应关系
- 模块
from django.conf.urls import url
- 语法:
- url(regex, views, name=None)
- 参数:
- regex: 字符串类型,匹配的请求路径,允许是正则表达式
- views: 指定路径所对应的视图处理函数的名称
- name: 为地址起别名,在模板中地址反向解析时使用
每个正则表达式前面的r表示
'\'
不转义的原始字符串
- 练习
- 建立一个小网站:
- 输入网址: http://127.0.0.1:8000, 在网页中输出 : 这是我的首页
- 输入网址: http://127.0.0.1:8000/page1, 在网页中输出 : 这是编号为1的网页
-知识补充:
当项目运行时,ctrl+z和ctrl+c有什么区别
ctrl+c:退出项目
ctrl+z:停止项目,但是进程还在占用,后台还是运行的,当再次运行该项目时,会现实进程已经被使用
- 建立一个小网站:
结语
Django的基础知识以及认识,编程愉快.