从零开始:Django项目的创建与配置指南


title: 从零开始:Django项目的创建与配置指南
date: 2024/5/2 18:29:33
updated: 2024/5/2 18:29:33
categories:

  • 后端开发

tags:

  • Django
  • WebDev
  • Python
  • ORM
  • Security
  • Deployment
  • Optimization

在这里插入图片描述

Django简介:

Django是一个开源的高级Python Web框架,由法国人Guido Zempe于2003年创建。它以“快速开发、可维护的网站”为目标,提供了许多内置的功能,如ORM(对象关系映射)、URL路由、模板系统、管理后台等,让开发者能够专注于业务逻辑,而无需从头开始构建网站的底层结构。

Django的特点包括:

  1. 面向开发者的易用性:提供了强大的模板系统和管理后台。
  2. 高效的开发:内置ORM和模型管理系统简化数据库操作。
  3. 安全性:内置安全特性,如CSRF保护和XSS过滤。
  4. 可扩展性:模块化设计,方便添加新功能。

环境准备与安装:

  1. Python安装: 首先确保你的计算机上安装了Python。你可以访问Python官网(https://www.python.org/downloads/)下载并安装最新版本。推荐使用Python 3.x。

  2. 虚拟环境: 为了保持项目环境的独立性,推荐使用虚拟环境(venv或conda)。在命令行中,进入你的项目目录,然后运行以下命令创建虚拟环境:

    python3 -m venv myenv
    

    其中myenv是你的虚拟环境名称。

  3. 激活虚拟环境: 在Windows上,运行myenv\Scripts\activate。 在Unix或Mac上,运行source myenv/bin/activate

  4. 安装Django: 在激活的虚拟环境中,使用pip安装Django:

    pip install Django
    

    安装完成后,确认Django版本:

    django-admin --version
    
  5. 设置项目: 创建一个新的Django项目,使用命令:

    django-admin startproject myproject
    

    这将创建一个名为myproject的文件夹,其中包含Django项目的基本结构。

现在,你已经准备好开始使用Django了。接下来可以深入学习项目的配置和应用的创建。

创建一个Django项目

创建一个Django项目非常简单,只需要几个命令。以下是在命令行中创建Django项目的步骤:

  1. 确保已激活虚拟环境(如果使用了虚拟环境): 确保你已经通过相应命令(如Windows的myenv\Scripts\activate或Unix/Mac的source myenv/bin/activate)激活了虚拟环境。

  2. 打开终端或命令提示符: 在包含项目的文件夹中打开终端或命令提示符。

  3. 创建新项目: 运行以下命令创建一个新的Django项目,假设我们将其命名为myproject

    django-admin startproject myproject
    

    这将创建一个名为myproject的文件夹,其中包含Django项目的基本结构,如myprojectmyproject/settings.pymyproject/urls.pymyproject/wsgi.py等。

  4. 进入项目目录: 项目创建后,使用cd命令进入项目目录:

    cd myproject
    
  5. 启动开发服务器: 使用以下命令启动Django的开发服务器,它将在本地运行:

    python manage.py runserver
    

    现在,你应该能在浏览器中访问http://127.0.0.1:8000/,看到Django的默认欢迎页面。

至此,你已经成功创建了一个基本的Django项目。接下来可以开始创建应用(app)并进行进一步的开发了。

Django项目结构解析

在Django中,一个项目(project)是由一个或多个应用(app)组成的。一个项目包含了整个网站的配置、URL路由、设置以及其他全局功能,而应用则是网站的特定功能模块。让我们来解析一下Django项目的基本结构:

  1. 项目文件夹: 项目文件夹是通过django-admin startproject projectname命令创建的,其中projectname是项目的名称。在项目文件夹中,你会发现以下文件和文件夹:

    • manage.py:这是一个命令行工具,可以帮助你与Django项目进行交互,比如运行开发服务器、创建数据库迁移等。
    • projectname/:这是项目的包含目录,其中包含了项目的设置和配置文件。
    • projectname/__init__.py:一个空文件,用于标识projectname目录为Python包。
    • projectname/settings.py:包含了Django项目的设置,比如数据库配置、静态文件路径、模板路径等。
    • projectname/urls.py:定义了项目的顶级URL路由。
    • projectname/wsgi.py:用于将Django项目部署到WSGI兼容的Web服务器上的入口文件。
  2. 应用文件夹: 在Django项目中,应用是可重用的Web应用程序,可以包含特定功能的模型、视图、模板等。每个应用都有自己的文件夹,通常包含以下文件和文件夹:

    • appname/:应用的包含目录,其中包含了应用的代码和资源文件。
    • appname/__init__.py:标识appname目录为Python包。
    • appname/admin.py:用于注册模型到Django的后台管理界面。
    • appname/apps.py:包含应用的配置信息。
    • appname/models.py:定义应用的数据模型。
    • appname/views.py:包含应用的视图函数或类。
    • appname/templates/:存放应用的HTML模板文件。
    • appname/static/:存放应用的静态文件,如CSS、JavaScript和图像文件。
  3. 数据库迁移文件夹: Django使用迁移(migration)来管理数据库模式的变更,迁移文件夹通常位于应用的目录下,包含了数据库模式变更的Python脚本文件。

  4. 虚拟环境和依赖文件: 在实际开发中,通常会使用虚拟环境来隔离项目的依赖。虚拟环境通常位于项目文件夹外部,而依赖文件(如requirements.txt)则包含了项目所需的Python包列表。

这就是一个典型的Django项目的基本结构。通过合理的组织和管理,可以使项目更易于维护和扩展。

配置Django项目

配置Django项目涉及以下几个关键步骤:

  1. 设置项目: 打开project_name/settings.py文件,配置项目的基本信息,如数据库设置、静态文件路径、中间件、URL模式等。例如,设置数据库:

    DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql',  # 更改为你的数据库类型'NAME': 'your_database_name',  # 数据库名称'USER': 'your_database_user',  # 数据库用户名'PASSWORD': 'your_database_password',  # 数据库密码'HOST': 'localhost',  # 数据库主机,如果在其他服务器上,填写服务器地址'PORT': '5432',  # 数据库端口}
    }
    
  2. 创建应用:project_name目录下,创建新的应用:

    python manage.py startapp app_name
    

    其中app_name是你的应用名称。

  3. 配置应用: 在应用的app_name/settings.py中,添加应用到INSTALLED_APPS列表中。

  4. 配置应用: Django会为你创建一个新的应用目录,里面包含了一些默认的文件。你可以在这个目录下编写视图、模型、模板等文件来实现应用的功能。

  5. 注册应用: 在项目的settings.py文件中,找到INSTALLED_APPS设置,将你新创建的应用添加到这个列表中:

    INSTALLED_APPS = [...'your_app_name',
    ]
    
  6. 编写视图: 在你的应用目录下的views.py文件中编写视图函数,处理用户请求并返回相应的响应。

  7. 配置URL路由: 在你的应用目录下创建一个urls.py文件,用于配置应用的URL路由。然后在项目的主urls.py文件中,包含你的应用URL配置:

    # 应用的urls.py
    from django.urls import path
    from . import viewsurlpatterns = [path('your_url_path/', views.your_view_function, name='your_url_name'),
    ]# 项目的urls.py
    from django.urls import path, includeurlpatterns = [...path('your_app/', include('your_app_name.urls')),
    ]
    
  8. 创建模型(可选): 如果你的应用需要与数据库交互,可以在应用目录下的models.py文件中定义模型类,代表数据库中的表结构。

  9. 运行开发服务器: 使用python manage.py runserver启动开发服务器,然后在浏览器中访问http://localhost:8000(默认端口)查看项目是否启动。

  10. 管理后台: 访问http://localhost:8000/admin/,使用默认的管理员账户登录(用户名:admin,密码:password),可以创建和管理模型。

  11. 配置其他选项(如静态文件、邮件设置等): 根据项目需求,在settings.py中添加其他配置,如静态文件的托管、邮件服务器设置等。

以上就是配置Django项目的基本步骤,根据你的实际需求,可能还需要进行更多的定制。

数据库配置与迁移

在Django中,配置数据库并进行迁移的步骤如下:

  1. 选择数据库引擎: Django支持多种数据库引擎,例如SQLite、MySQL、PostgreSQL等。在settings.py文件中的DATABASES设置中选择适合你的数据库引擎,并填写相应的连接信息。

  2. 创建数据库: 根据你选择的数据库引擎,在数据库服务器上创建一个空数据库。如果使用SQLite,可以跳过此步骤,因为SQLite数据库是以文件形式存储的。

  3. 配置数据库连接信息:settings.py文件中的DATABASES设置中,根据你的数据库引擎填写连接信息。例如,对于MySQL数据库:

    DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'your_database_name','USER': 'your_database_user','PASSWORD': 'your_database_password','HOST': 'localhost','PORT': '3306',}
    }
    
  4. 进行数据库迁移: 在项目根目录下,运行以下命令来创建数据库表和结构:

    python manage.py migrate
    
  5. 创建应用的数据库迁移文件(可选): 如果你在应用中创建了新的模型或对现有模型进行了更改,需要为这些更改创建数据库迁移文件。在应用目录下运行以下命令:

    python manage.py makemigrations app_name
    

    其中app_name是你的应用名称。

  6. 应用数据库迁移: 运行以下命令来应用数据库迁移:

    python manage.py migrate
    
  7. 查看数据库迁移状态(可选): 运行以下命令可以查看数据库迁移的状态:

    python manage.py showmigrations
    

通过以上步骤,你就可以配置数据库并进行迁移了。请确保数据库连接信息正确,并且在进行迁移之前备份数据库以防止数据丢失。

模板与静态文件:

模板(Templates):

  1. 模板是Django中用于生成HTML内容的文件,通常存放在应用的templates目录下。
  2. Django使用模板语言(Template Language)来动态生成内容,包括变量、标签和过滤器。
  3. 在视图函数中使用render()函数加载模板并传递数据进行渲染,最终返回给用户的是渲染后的HTML页面。
  4. 模板语言中的变量使用{{ variable_name }},标签使用{% tag_name %},过滤器使用{{ value|filter_name }}的方式进行操作。
  5. 继承是模板中常用的技术,通过{% extends 'base.html' %}{% block content %}来实现模板的继承和覆盖。

静态文件(Static Files):

  1. 静态文件包括CSS、JavaScript、图片等不需要经过处理的文件,通常存放在应用的static目录下。
  2. 在模板中使用{% load static %}加载静态文件,然后通过{% static 'path/to/file' %}来引用静态文件。
  3. settings.py中配置STATIC_URL用于指定静态文件的URL前缀,STATICFILES_DIRS用于指定静态文件的存放路径。
  4. 在开发环境中,可以使用django.contrib.staticfiles应用来自动收集静态文件,而在生产环境中,可以使用Web服务器(如Nginx)来提供静态文件服务。
  5. 为了提高性能,可以使用CDN(内容分发网络)来加速静态文件的访问。

用户认证与权限控制:

用户认证(User Authentication):

  1. Django提供了内置的用户认证系统,包括用户注册、登录、注销、密码重置等功能。
  2. 可以通过django.contrib.auth应用来实现用户认证,其中包括User模型和authenticate()login()logout()等方法。
  3. 用户可以通过表单输入用户名和密码进行登录,系统会验证用户身份并创建相应的会话。
  4. 可以使用装饰器@login_required来限制某些视图只能被登录用户访问,未登录用户将被重定向到登录页面。

权限控制(Permission Control):

  1. Django提供了基于角色的权限控制系统,可以对用户进行授权以限制其访问权限。
  2. 可以通过django.contrib.auth.models.Permissiondjango.contrib.auth.models.Group来管理权限和用户组。
  3. 可以在视图函数中使用@permission_required装饰器来限制只有具有特定权限的用户才能访问该视图。
  4. 可以在模板中使用{% if user.has_perm %}来根据用户是否具有某项权限来展示不同的内容。
  5. 可以通过自定义权限来扩展系统的权限控制,例如定义特定操作的权限,并将其分配给用户或用户组。

Django管理后台(Django Admin):

Django管理后台是一个内置的功能,用于管理数据库模型(models)和应用程序的数据。它提供了一个用户友好的界面,管理员可以执行以下操作:

  1. 模型管理:在后台,可以查看、添加、编辑和删除模型(如User、Post等)的实例。每个模型都有自己的表单,可以直观地管理数据。
  2. 数据查看:可以查看模型数据的列表,支持排序、过滤和搜索功能。
  3. 数据编辑:点击模型实例可以进入详细编辑页面,可以修改字段值并保存更改。
  4. 模型创建:可以创建新的模型实例,并设置初始属性。
  5. 模型字段管理:可以管理模型的字段,如字段类型、默认值、验证规则等。
  6. 模型关系管理:对于模型之间的关系,如一对一、一对多和多对多关系,后台提供了可视化工具来管理关联实例。
  7. 模型表单定制:可以自定义模型的表单,包括添加或移除字段、改变字段顺序等。
  8. 权限管理:Django管理后台的访问权限可以通过django.contrib.auth模块进行控制,可以设置不同用户或用户组对不同模型的访问权限。
  9. 数据导出/导入:支持CSV格式的数据导出和导入,方便数据备份或迁移。
  10. 后台日志:记录后台操作日志,便于审计和问题排查。

Django管理后台是一个非常实用的功能,使得开发人员和管理员可以轻松管理数据,而无需编写大量的数据库操作代码。通过它,可以快速地对应用中的数据进行操作,提高开发和维护效率。

AD: 专业的搜索引擎

项目优化

  1. 性能优化

    • 代码优化:减少不必要的数据库查询,使用缓存,优化数据库索引。
    • 静态文件合并和压缩:合并CSS和JavaScript文件,压缩它们以减少HTTP请求和传输大小。
    • CDN(内容分发网络) :对于静态资源,使用CDN可以提高访问速度。
    • 代码库优化:使用性能分析工具(如cProfile、Python的timeit)找出瓶颈并进行优化。
  2. 代码重构:遵循DRY(Don’t Repeat Yourself)原则,避免冗余代码,提高代码可读性和维护性。

  3. 资源管理:限制不必要的资源消耗,如内存和CPU。

  4. 响应式设计:确保网站在不同设备和屏幕尺寸上都能有良好的用户体验。

安全措施

  1. 身份验证和授权

    • 使用强密码策略,考虑使用多因素认证(MFA)。
    • 对敏感操作进行权限控制,如用户管理、数据修改等。
  2. 数据保护

    • 对敏感数据进行加密,比如密码、信用卡信息等。
    • 使用HTTPS以保护通信内容不被窃听。
  3. 输入验证和过滤

    • 对用户输入进行校验,防止SQL注入、XSS攻击等。
    • 使用安全的库和框架来处理用户输入。
  4. 错误处理和日志

    • 清晰的错误消息不应该包含敏感信息。
    • 记录和监控日志,以便及时发现并处理安全问题。
  5. 框架和库的安全更新

    • 定期检查并更新所有依赖的库和框架,修复已知的安全漏洞。
  6. 防火墙和安全软件

    • 在服务器上安装防火墙,阻止不必要的网络连接。
    • 安装和配置安全软件,如WAF(Web应用防火墙)。
  7. 代码审查和渗透测试

    • 定期进行代码审查,寻找潜在的安全问题。
    • 进行安全渗透测试,模拟黑客攻击,找出并修复漏洞。
  8. 合规性

    • 遵守相关法规,如GDPR(欧洲通用数据保护条例)。

以上措施可以帮助你提升项目的性能和安全性,但请注意,安全是一个持续的过程,需要不断更新和改进。

部署Django项目

部署Django项目通常涉及以下几个步骤,这些步骤可能会根据你的具体需求和环境有所不同:

  1. 设置服务器

    • 选择服务器:你可以选择使用云服务(如AWS、Google Cloud、Heroku等)、虚拟主机(如DigitalOcean、Vultr、Linode等)、或者自己的服务器(如Ubuntu、CentOS等)。
    • 安装操作系统和必要的软件:如Python、Nginx、Gunicorn或uWSGI等Web服务器软件。
  2. 安装Django

    • 在服务器上安装最新版本的Python和Django,使用命令行:
    pip install django
    
  3. 设置项目和应用

    • 创建一个新的Django项目:
    django-admin startproject project_name
    
    • 进入项目目录并创建应用:
    cd project_name
    python manage.py startapp app_name
    
  4. 配置数据库

    • project_name/settings.py文件中,配置数据库连接信息(如PostgreSQL、MySQL、SQLite等)。
  5. 迁移数据库

    python manage.py makemigrations
    python manage.py migrate
    
  6. 创建超级用户

    python manage.py createsuperuser
    
  7. 静态文件和媒体文件管理

    • 配置静态文件和媒体文件的存储路径,通常放在staticmedia目录下。
    • 在生产环境中,可能需要使用如Gunicorn、uWSGI、Nginx等服务器配置反向代理和静态文件处理。
  8. 部署代码

    • 将项目文件(包括manage.py)上传到服务器。
    • 使用版本控制系统(如Git)进行版本控制,确保代码更新的可追溯性。
    • 安装必要的依赖(如数据库驱动、Django应用等)。
  9. 启动服务器

    • 使用Gunicorn、uWSGI或Nginx等工具启动Django应用。具体命令取决于你的配置:
    • Gunicorn: gunicorn project_name.wsgi:application
    • uWSGI: uwsgi --http :8000 --module project_name.wsgi:application
    • Nginx: 配置Nginx虚拟主机,并指向项目的wsgi文件。
  10. 测试应用

    • 通过浏览器访问http://your_server_ip:your_port/,确保应用正常运行。
  11. 安全性和日志

    • 安装SSL证书以启用HTTPS。
    • 配置日志记录,以便监控和调试。

以上是一个基本的部署流程,实际部署可能需要根据你的具体需求进行调整,例如使用负载均衡、容器化(Docker)、环境变量管理等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言之整形提升和算术转换

目录 前言 一、整形提升 二、算术转换 总结 前言 本文主要介绍C语言中的整形提升和算术转换的概念和意义,以及例题帮助理解,了解之后,我们就能知道在C语言中,字符型变量如何计算以及如果变量的类型、字节大小不一致的情况下&am…

golang学习笔记(内存模型和分配机制)

操作系统的存储管理 虚拟内存管理 虚拟内存是一种内存管理技术,它允许操作系统为每个进程提供一个比实际物理内存更大的地址空间。这个地址空间被称为虚拟地址空间,而实际的物理内存则被称为物理地址空间。使用虚拟内存有以下几点好处: 内…

git 第一次安装设置用户名密码

git config --global user.name ljq git config --global user.email 15137659164qq.com创建公钥命令 输入后一直回车 ssh-keygen -t rsa下面这样代表成功 这里是公钥的 信息输入gitee 中 输入下面命令看是否和本机绑定成功 ssh -T gitgitee.com如何是这样,恭喜…

基于51单片机PWM控制直流电机—数码管显示

基于51单片机PWM控制直流电机 (仿真+程序+设计报告) 功能介绍 具体功能: 1.L298驱动直流电机; 2.数码管显示转动方向和PWM占空比(0-100%); 3.按键控制PWM占空比来加/…

20232803 2023-2024-2 《网络攻防实践》实践八报告

目录 1. 实践内容2. 实践过程2.1 动手实践任务一2.2 动手实践任务二:分析Crackme程序2.2.1 crackme1.exe2.2.2 crackme2.exe 2.3 分析实践任务一2.4 分析实践任务二 3. 学习中遇到的问题及解决4. 学习感悟、思考等 1. 实践内容 动手实践任务一:对提供的r…

R语言实战——中国职工平均工资的变化分析——相关与回归分析

链接: R语言学习—1—将数据框中某一列数据改成行名 R语言学习—2—安德鲁斯曲线分析时间序列数据 R语言学习—3—基本操作 R语言学习—4—数据矩阵及R表示 R语言的学习—5—多元数据直观表示 R语言学习—6—多元相关与回归分析 1、源数据 各行业平均工资变化 各地区平均工资…

list 的模拟实现

目录 1. list 的实现框架 2. push_back 3. 迭代器 4. constructor 4.1. default 4.2. fill 4.3. range 4.4. initializer list 5. insert 6. erase 7. clear 和 destructor 8. copy constructor 9. operator 10. const_iterator 10.1. 普通人的处理方案 10.2. …

数据库复习1

1.试述数据、数据库、数据库管理系统、数据库系统的概念 1.数据(Data): 数据是关于事物的符号表示或描述。它可以是任何事实、观察或者测量的结果,如数字、字符、声音、图像等。数据在没有上下文的情况下可能没有明确的意义。 2.数据库(Database): 数据库是一个持…

Linux——socket编程之tcp通信

前言 前面我们学习socket的udp通信,了解到了socket的概念与udp的实现方法,今天我们来学习一下面向连接的tcp通信。 一、tcp套接字创建 UDP和TCP都是通过套接字(socket)来实现通信的,因此TCP也得使用socket()接口创建…

时间复杂度_空间复杂度

时间复杂度_空间复杂度 1.算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。 时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的…

C#技巧之同步与异步

区别 首先,同步就是程序从上往下顺序执行,要执行完当前流程,才能往下个流程去。 而异步,则是启动当前流程以后,不需要等待流程完成,立刻就去执行下一个流程。 同步示例 创建一个窗体,往窗体里…

2131 - 枚举-练习-涂国旗

2131 - 枚举-练习-涂国旗 c刷题 超能力编程 分析 枚举涂w的底边和涂b的底边即可 剩下的部分都涂r 数据范围这么小,暴力枚举,代码简单难度低。搜索什么的用不着啦! 那么问题来了:怎么枚举呢? 我们只要枚举白与蓝、蓝与红的边界&…

【DPU系列之】DPU中的ECPF概念是什么?全称是什么?(E CPF对标H CPF;embedded CPU function ownership)

ECPF:embedded CPU function ownership。 嵌入式CPU运转ownership。也叫DPU模式,是DPU工作运转3种模式之一,也是默认的模式。这里的嵌入式CPU指的是DPU上ARM CPU,表示网卡所有资源和功能被embedded CPU全权管理,行使所…

【动态规划】投资问题

本文利用markdown基于https://blog.csdn.net/qq_41926985/article/details/105627049重写,代码部分为本人编辑 代码要求 应用动态规划方法,求解投资问题,实现下面的例子。 #define MAX_N 4 //最大投资项目数目 #define MAX_M 5 //最大投资钱数(万元) /…

【机器视觉】yolo-world-opencvsharp-.net4.8 C# 窗体应用程序

这段代码是基于 OpenCvSharp, OpenVinoSharp 和 .NET Framework 4.8 的 Windows Forms 应用程序。其主要目的是加载和编译机器学习模型,对输入数据进行推理,并显示结果。 下面是该程序的主要功能和方法的详细总结: 初始化 OpenVINO 运行时核心…

基于Pytorch深度学习——卷积神经网络(卷积层/池化层/多输入多输出通道/填充和步幅/)

本文章来源于对李沐动手深度学习代码以及原理的理解,并且由于李沐老师的代码能力很强,以及视频中讲解代码的部分较少,所以这里将代码进行尽量逐行详细解释 并且由于pytorch的语法有些小伙伴可能并不熟悉,所以我们会采用逐行解释小…

【DPU系列之】如何通过带外口登录到DPU上的ARM服务器?(Bluefield2举例)

文章目录 1. 背景说明2. 详细操作步骤2.1 目标拓扑结构2.2 连接DPU带外口网线,并获取IP地址2.3 ssh登录到DPU 3. 进一步看看系统的一些信息3.1 CPU信息:8核A723.2 内存信息 16GB3.3 查看ibdev设备 3.4 使用小工具pcie2netdev查看信息3.5 查看PCIe设备信息…

python笔记:gensim进行LDA

理论部分:NLP 笔记:Latent Dirichlet Allocation (介绍篇)-CSDN博客 参考内容:DengYangyong/LDA_gensim: 用gensim训练LDA模型,进行新闻文本主题分析 (github.com) 1 导入库 import jieba,os,re from ge…

【云原生】Docker 的网络通信

Docker 的网络通信 1.Docker 容器网络通信的基本原理1.1 查看 Docker 容器网络1.2 宿主机与 Docker 容器建立网络通信的过程 2.使用命令查看 Docker 的网络配置信息3.Docker 的 4 种网络通信模式3.1 bridge 模式3.2 host 模式3.3 container 模式3.4 none 模式 4.容器间的通信4.…

Stream流操作

看到Stream流这个概念,我们很容易将其于IO流联系在一起,事实上,两者并没有什么关系,IO流是用于处理数据传输的,而Stream流则是用于操作集合的。 当然,为了方便我们区分,我们依旧在这里复习一下…