Django框架 (一)

106 阅读2分钟

Django框架

一、Django框架介绍

- Django是2005年发布,采用python语言编写的开源web框架。 
- Django是一个重量级的Python web框架,配备常用大部分组件:
1. 基本配置settings
1. 路由系统
2. 原生HTML模板系统
3. 视图VIEW
4. MODEL模型,数据库连接和ORM数据库管理
5. 中间件
6. Cookie&Session
7. 分页
8. 数据库后台管理系统admin

- Django常用于:

  1. 网站后端开发
  2. 微信公众号、微信小程序等后台开发
  3. 基于HTTP/HTTPS协议的后台服务器开发   
    -在线语音/图像识别服务器
    -在线第三方身份验证服务器
    - Django的安装

    1. 在线安装:    

    $ sudo pip3 install django 安装Django的最新版本


    -  $ sudo pip3 install django[==版本] 安装Django的指定版本
    例如:     

    $ sudo pip3 install django==4.0.6

    1. 离线安装:
  • 官网下载安装包:
  • 安装离线包:
  1. $ tar -xvf Django-4.0.6.tar.gz\
  2. $ cd  Django-4.0.6.\
  3. sudopython3setup.pyinstall  Django的卸载      sudo python3 setup.py install\ - Django的卸载\      pip3 uninstall Django\

二、Django框架开发

创建项目的指令



- $ django-admin startproject [项目名称]
如:
$ django-admin startproject mysite1

运行指令

    $ cd mysite1
$ python3 manage.py runserver

$ python3 manage.py runserver 8000 #指定只能本机使用127.0.0.1的8000端口访问本机

运用tree命令查看mysite1的目录结构

    

  •  进入mysite1后:     $ tree 
  •  可以查看mysite1下的目录结构及相关文件 ├── db.sqlite3
    ├── manage.py
    └── mysite1
    ├── asgi.py
    ├── init.py
    ├── pycache
    │   ├── init.cpython-38.pyc
    │   ├── settings.cpython-38.pyc
    │   ├── urls.cpython-38.pyc
    │   └── wsgi.cpython-38.pyc
    ├── settings.py
    ├── urls.py
    └── wsgi.py

    \
  • 项目目录结构解析
    -  manage.py
    - 项目管理的主程序,用于管理整个项目开发运行的调试
    - 包含项目管理的子命令,如:
    - $ python3 manage.py runserver 启动服务
    - $ python3 manage.py startapp 创建应用
    - $ python3 manage.py migrate 数据库迁移
    -...

    - mysite1项目包文件夹
    1.init.py:包初始化文件,项目包被导入时本文件将自动运行

    2. wsgi.py 
    -WSGI就是Web Server Gateway Interface            
    -WEB服务网关接口的配置文件,供部署项目时使用

    3. urls.py
    -项目的基础路由配置文件,所有的动态路径必须从该文件进行匹配

    4.settings.py
    -Django项目的配置文件,本文件的部分全局变量会为Django框架的运行传递一些参数
    -settings.py配置文件在启动服务时自动调用
  • settings.py文件介绍 1. BASE_DIR    
    用于绑定当前项目的绝对路径,所有文件依赖此路径

    2. DEBUG
    用于配置Django项目的启动模式,取值
    1.True表示开发环境使用调试模式
    2.False表示当前项目在生产环境中(不启动调试)

    3. ALLOWED_HOSTS
    设置允许访问本项目的网络地址列表,取值:
    -[]空列表表示只有127.0.0.1,localhost,'[::1]'能访问本项目
    -[''],表示任何网络地址都能访问到当前项目    
    -['179.88.8.6','david.com']表示只有指定的主机能访问当前项目
    如果要局域网内其他主机也能访问此主机,启动模式如下:
    $ python3 manage.py runserver 0.0.0.0:8888  
    配合ALLOWED_HOSTS=['
    ']
    4. INSTALLED_APPS    
    指定当前项目中安装的应用列表
    5.     MIDDLEWARE    
    用于注册中间件

    6. TEMPLATES
    用于指定模板的配置信息
    7. DATABASES
    用于指定数据库的配置信息

    8. LANGUAGE_CODE
    用于指定语言配置,取值:英文"en-us",中文"zh-hans"
    9. TIME_ZONE
    用于指定当前服务端时区,取值:世界标准时间"UTC",中国时区"Asia/Shanghai"

    10. ROOT_URLCONF
    用于配置根级url配置'mysite1.urls'
    该模块可通过from django.conf import settings导入使用

三、URL介绍

- URL即统一资源定位符Uniform Resource Locator
- 用途:表示互联网上某个资源的地址
- 说明:互联网上每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器如何来处理它
- URL的语法格式:
protocol://hostname[:port]/path[?query][#fragment]
如:
blog.csdn.net/huanglaoer1…
- 说明:
-protocol(协议)
1. http通过HTTP访问该资源,格式:HTTP:// 2. https通过HTTP访问该资源,格式:HTTPS:// 3. file资源是本地计算机上的文件,格式:file:// 4. ... -hostname(主机名)        

- 是指存放资源的服务器的域名系统(DNS)主机名、域名或IP地址

- port(端口号)
- 整数,可选,省略时使用方案的默认端口
- 各种传输协议都有默认的端口号,如http的默认端口为80

- path(路由地址)
- 由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录,路由地址决定了服务端如何处理这个请求

- query(查询)
- 可选,用于给动态网页传递参数,可有多个参数,用"&"符号隔开,每个参数的名和值用"="符号隔开

- fragment(信息片断)
- 字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。

- 备注:[ ]表示其中内容可省略

四、视图函数(VIEW)
- 视图函数是用于接收一个浏览器请求并通过HttpResponse对象返回数据的函数。此函数可以接收浏览器请求并根据业务逻辑返回相应的内容给浏览器。
- 视图处理的函数的语法格式:
def xxx_view(request[,其他参数...]):
return HttpResponse对象
- 参数:
- request 用于绑定HttpResponse对象,通过此对象可以获取浏览器的参数和数据
- 举例:
- 视图处理函数views.py 
file:<项目名>/views.py
from django.http import HttpResponse
def page1_view(request):
html="

这是第一个页面

"
return HttpResponse(html)

五、Django中的路由配置

- settings.py中的ROOT_URLCONF指定了主路由配置列表urlpatterns的文件位置
- urls.py主路由配置文件
file:<项目名>/urls.py
urlpatterns=[
path('admin/',admin.site.urls)
...此处配置主路由
]
urlpatterns是一个路由-视图函数映射关系的列表,此列表的映射关系由url函数来确定
- path()函数
- 用于描述路由和视图函数的对应关系
- 模块:
-$ from django.urls import path
- 语法:
-path(regex,views, [name=None,**kwargs])
-参数:
1.regex:字符串类型,匹配的请求路径,允许为正则表达式
2.views:指定路径所对应的视图处理函数的名称
3.name: 为URL取别名,可用于模板中地址反向解析,这个有用的特性允许我们只改一个文件就能全局地修改某个 URL 模式。
4.**kwargs:参数表示一个字典,该参数没有具体命名,只是字典形式,而且该参数只能在视图函数中读取和使用。任意个关键字参数可以作为一个字典传递给目标视图函数。