Django基础-创建新项目,各文件作用

news2024/11/18 3:29:17

学习Django的前置知识:

  • python基本语法:需要掌握Python中的变量、循环、条件判断、函数等基本概念。
  • 面向对象编程(OOP):Django的核心架构基于面向对象编程,许多功能(如模型和视图)依赖于类和方法的设计。因此,学习Python的面向对象部分是必需的。你需要理解以下概念:
    • 类与对象:如何定义和使用类。
    • 继承多态:如何通过继承实现代码复用和扩展。
    • 封装:如何隐藏实现细节,提供接口。

2. HTML/CSS基础

  • HTML:了解基本的页面结构,标签和属性。
  • CSS:用于样式化网页,可以帮助你在Django项目中自定义前端页面的展示。

3. JavaScript基础

  • 基础语法:用于实现页面上的交互和动态效果。
  • AJAX:可以在不刷新页面的情况下与服务器进行通信,常用于Django中的异步操作。

4. 数据库基础

  • SQL:了解基本的SQL语法,如何进行查询、插入、更新和删除操作。
  • Django使用ORM(对象关系映射)与数据库进行交互,虽然可以不直接写SQL,但了解数据库如何工作很有帮助。

5. HTTP/网络基础

  • HTTP协议:理解基本的GET、POST请求以及HTTP状态码。
  • Django作为一个Web框架,处理HTTP请求和响应是核心功能之一。

1. 项目结构:

首先,确保你将项目文件按Django的标准结构进行组织。Django项目的基本结构如下:

myproject/
    ├── myproject/
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   ├── asgi.py
    │   └── wsgi.py
    ├── myapp/
    │   ├── migrations/
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── apps.py
    │   ├── models.py
    │   ├── views.py
    │   ├── urls.py
    │   └── templates/
    │       ├── about.html
    │       ├── getinformation.html
    │       ├── index.html
    │       ├── welcome.html
    ├── static/
    │   ├── css/
    │   ├── js/
    │   └── images/
    ├── manage.py

2. 在cmd中创建Django项目:

首先,在要创建项目的文件夹运行cmd,输入下面这行命令,创建一个名为myproject的项目文件夹。

django-admin startproject myproject

接着输入下面两行命令,在刚刚创建的项目中创建一个新的Django应用:

cd myproject

python manage.py startapp myapp

2. 1 .在pycharm中创建Django项目:

点这个创建新项目,正常来说,第一次创建的话,pycharm会自动帮你下载Django包到你的本地python环境中。当然也可以手动用pip安装。

3. Django配置:

编辑 myproject/settings.py 文件,将 myapp 添加到 INSTALLED_APPS 列表中,并设置静态文件和模板文件的路径:

INSTALLED_APPS = [
    ...
    'myapp',
]

# 添加静态文件配置
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / 'static']

# 添加模板文件配置
TEMPLATES = [
    {
        ...
        'DIRS': [BASE_DIR / 'myapp/templates'],
        ...
    },
]

一些文件和目录的名字是 Django 框架自动生成的,并且在项目初始化或运行时依赖这些名字:

  • manage.py: 项目根目录下的 manage.py 文件是 Django 项目的入口,用于执行各种 Django 管理命令,如启动服务器、创建数据库迁移等。文件名不能更改。

  • __init__.py: 每个 Python 包(目录)下都需要包含这个文件,它可以是空的,但必须存在。它告诉 Python 该目录是一个包。

  • settings.py: 这个文件位于项目的配置文件夹中,是 Django 项目的配置文件。虽然你可以更改它的名字,但需要在 manage.pywsgi.py 等文件中同步更改 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<your_settings>")

  • urls.py: 每个应用通常都有自己的 urls.py 文件,用于定义 URL 路由。如果更改名字,Django 将不会自动加载它。每个应用的 urls.py 文件名应保持不变。

  • wsgi.pyasgi.py: 这两个文件分别用于 WSGI 和 ASGI 服务器部署。如果你要使用 Django 进行服务器部署,默认名字应保持不变,除非你知道如何手动配置这些文件。

4.各个部分功能

1. 项目根目录 (myproject/)

这个根目录包含了项目的全局文件,包括 manage.py 和一个与项目同名的子目录。

manage.py

manage.py 是 Django 的命令行工具,用于执行管理任务,例如运行开发服务器、迁移数据库等。你可以通过运行命令 python manage.py runserver 来启动项目。

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable?"
        ) from exc
    execute_from_command_line(sys.argv)

2. 项目子目录 (myproject/)

这个子目录包含项目的全局配置文件,它的名字通常与项目名相同。它包含 Django 项目的核心配置文件。

__init__.py

这是一个空文件,表明 myproject/ 是一个 Python 包。

settings.py

这是 Django 项目的配置文件,包含数据库设置、静态文件设置、应用程序注册、时区、语言等信息。你会经常修改这个文件。

# settings.py

# 项目安装的应用程序
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',  # 注册自定义应用
]

# 中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# 数据库设置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

# 静态文件配置
STATIC_URL = '/static/'
urls.py

定义了项目的全局 URL 路由。通过此文件将用户的请求导向不同的应用或视图函数。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),  # 将主应用的路由包含进来
]
asgi.py

配置项目的 ASGI 入口点,通常用于异步服务器和 WebSocket。

import os
from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_asgi_application()
wsgi.py

配置项目的 WSGI 入口点,通常用于生产环境的部署。

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_wsgi_application()

3. 应用目录 (myapp/)

这是我们创建的自定义应用,每个应用都是一个功能模块。Django 项目可以包含多个应用,每个应用负责一个独立的功能。

migrations/

这个文件夹保存数据库迁移文件,Django 会在模型变化时自动生成这些文件。

admin.py

用于注册模型,使它们可以在 Django 管理后台进行管理。

from django.contrib import admin
from .models import UserInfo

admin.site.register(UserInfo)  # 将 UserInfo 模型注册到管理后台
apps.py

用于配置应用程序,定义应用的名称等。

from django.apps import AppConfig

class MyappConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'myapp'
models.py

模型文件,定义数据库结构。每个模型类映射到数据库中的一张表。

models.py 文件中,虽然模型的类名和字段名称可以自定义,但有些约定不能更改:

  • 类继承自 models.Model: 你的模型类必须继承自 django.db.models.Model

from django.db import models

class UserInfo(models.Model):
    name = models.CharField(max_length=100)
    student_id = models.CharField(max_length=50, unique=True)
    class_name = models.CharField(max_length=50)
    email = models.EmailField()
    phone = models.CharField(max_length=15)
    message = models.TextField()

    def __str__(self):
        return self.name
  • models.Model 是 Django 的模型基类,不能省略或替换。

  • 字段类型: Django 提供了一系列字段类型(CharField, IntegerField, EmailField 等),这些类型不能任意修改。如果你要保存字符串、整数等数据,必须使用 Django 提供的字段类型。

  • Meta: Meta 类是模型的内部类,可以用于定义一些模型的元数据,如数据库表名、排序等。虽然类名 Meta 可以自定义,但这是 Django 的约定,建议不要修改。如果你要定义元选项,必须用 Meta

  • class UserInfo(models.Model):
        name = models.CharField(max_length=100)
        
        class Meta:
            db_table = 'user_info_table'
    

views.py

视图文件,处理请求并返回响应。视图可以直接返回 HTML 或通过模板返回动态内容。

views.py 中视图函数名或类名可以自定义,但某些地方的名字必须符合 Django 的约定:

  • request 参数: 无论是基于函数的视图还是基于类的视图,第一个参数必须是 request,它是 Django 自动传递的 HttpRequest 对象。不能修改这个参数名,否则视图函数无法正确接收请求数据。

from django.shortcuts import render
from .models import UserInfo

def index(request):
    return render(request, 'myapp/index.html')

def submit_info(request):
    if request.method == 'POST':
        name = request.POST['name']
        student_id = request.POST['student_id']
        class_name = request.POST['class_name']
        email = request.POST['email']
        phone = request.POST['phone']
        message = request.POST['message']
        
        UserInfo.objects.create(
            name=name, student_id=student_id, class_name=class_name,
            email=email, phone=phone, message=message
        )
        return render(request, 'myapp/success.html')
    return render(request, 'myapp/index.html')
视图类继承自 View 或其子类: 如果使用基于类的视图,必须继承 django.views.View 或其子类。类名可以自定义,但继承必须正确:
from django.views import View

class MyView(View):
    def get(self, request):
        return HttpResponse('Hello, World!')
forms.py

用于定义表单字段和验证规则,特别适用于复杂的表单处理。

表单的文件名可以是任意的,但表单类必须继承自 forms.Formforms.ModelForm。此外,表单字段必须使用 Django 提供的字段类型。

  • 表单类继承自 forms.Formforms.ModelForm:

  • from django import forms
    
    class UserInfoForm(forms.ModelForm):
        class Meta:
            model = UserInfo
            fields = ['name', 'email']
    

    Meta: 与模型类似,如果使用 ModelFormMeta 类的名称不可更改。

urls.py

定义应用的 URL 路由。

  • urlpatterns 列表: 这个列表用于存放 URL 模式与视图函数的对应关系,名字必须为 urlpatterns,不能修改,否则 Django 无法找到你的路由。

  • path()re_path(): 路由必须使用 Django 提供的 path()re_path() 函数来定义,不能使用其他方式。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('submit-info/', views.submit_info, name='submit_info'),
]
templates/

存放 HTML 模板的文件夹。Django 将根据模板生成动态页面。

<!DOCTYPE html>
<html>
<head>
    <title>信息填写</title>
</head>
<body>
    <h1>填写您的信息</h1>
    <form method="POST" action="{% url 'submit_info' %}">
        {% csrf_token %}
        姓名: <input type="text" name="name"><br>
        学号: <input type="text" name="student_id"><br>
        班级: <input type="text" name="class_name"><br>
        邮箱: <input type="email" name="email"><br>
        电话: <input type="text" name="phone"><br>
        留言: <textarea name="message"></textarea><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

4. static/ 目录

static/ 目录用于存放静态文件,例如 CSS、JavaScript 和图片等。静态文件在生产环境中并不会动态生成,而是直接提供给用户的。

css/

这里存放项目的 CSS 文件,用于定义页面的样式。

示例文件:

style.css

body {
    font-family: Arial, sans-serif;
    background-color: #f9f9f9;
}

h1 {
    color: #333;
}

form {
    margin: 20px 0;
}
js/

这里存放 JavaScript 文件,用于增强网页的交互性。

示例文件:

script.js

document.addEventListener("DOMContentLoaded", function() {
    alert("页面加载完毕!");
});

images/

这个文件夹用于存储图片文件,例如 logo、背景图片等。

5. migrations/ 目录

migrations/ 目录是 Django 用来记录模型变更的地方。当你对数据库模型进行修改后,需要生成迁移文件并应用到数据库中。

迁移文件会自动生成,用于保持数据库表结构与模型一致。

示例迁移文件:

0001_initial.py

from django.db import migrations, models

class Migration(migrations.Migration):
    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='UserInfo',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('student_id', models.CharField(max_length=50, unique=True)),
                ('class_name', models.CharField(max_length=50)),
                ('email', models.EmailField(max_length=254)),
                ('phone', models.CharField(max_length=15)),
                ('message', models.TextField()),
            ],
        ),
    ]

6. templates/ 目录

templates/ 目录用于存放模板文件。在 Django 中,模板系统允许开发者将 HTML 代码与动态内容结合,通过视图函数来生成网页。

通常,templates/ 目录是按应用分为多个子目录的。例如,在 myapp/ 应用中,模板文件位于 myapp/templates/myapp/ 下。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>信息填写</title>
    <link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>
<body>
    <h1>填写您的信息</h1>
    <form method="POST" action="{% url 'submit_info' %}">
        {% csrf_token %}
        姓名: <input type="text" name="name"><br>
        学号: <input type="text" name="student_id"><br>
        班级: <input type="text" name="class_name"><br>
        邮箱: <input type="email" name="email"><br>
        电话: <input type="text" name="phone"><br>
        留言: <textarea name="message"></textarea><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

7. tests.py

这是 Django 项目中的测试文件,用于编写自动化测试。你可以在这里编写测试来验证应用的功能是否正常工作。

示例代码:

from django.test import TestCase
from .models import UserInfo

class UserInfoTest(TestCase):
    def setUp(self):
        UserInfo.objects.create(
            name="张三", student_id="12345", class_name="2024级", 
            email="zhangsan@example.com", phone="123456789", message="测试留言"
        )

    def test_user_info(self):
        user = UserInfo.objects.get(student_id="12345")
        self.assertEqual(user.name, "张三")
        self.assertEqual(user.email, "zhangsan@example.com")

8. forms.py (可选)

forms.py 用于定义 Django 表单类,便于处理用户提交的数据。虽然可以直接在视图中手动处理表单数据,但通过表单类可以更好地组织代码并进行自动验证。

from django import forms

class UserInfoForm(forms.Form):
    name = forms.CharField(label='姓名', max_length=100)
    student_id = forms.CharField(label='学号', max_length=50)
    class_name = forms.CharField(label='班级', max_length=50)
    email = forms.EmailField(label='邮箱')
    phone = forms.CharField(label='电话', max_length=15)
    message = forms.CharField(label='留言', widget=forms.Textarea)

9. admin.py

用于将模型注册到 Django 管理后台,以便通过 Django 的默认管理界面进行管理。每个注册的模型可以在后台进行增删改查等操作。

admin.site.register(): 用于将模型注册到 Django 的管理后台,admin.site 是 Django 内置的后台站点管理器,必须保持不变。

示例代码:

from django.contrib import admin
from .models import UserInfo

# 注册模型到管理后台
admin.site.register(UserInfo)

10. apps.py

这个文件用于定义 Django 应用程序的配置信息。每个 Django 应用都可以有一个 AppConfig 类,负责定义应用的元数据。

示例代码:

from django.apps import AppConfig

class MyappConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'myapp'

11. urls.py

每个应用可以有自己独立的 URL 路由配置文件,这里定义了视图函数和 URL 的映射关系。项目的全局 urls.py 文件通常会包含应用的 urls.py

示例代码:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('submit-info/', views.submit_info, name='submit_info'),
]

中间件 (MIDDLEWARE)

settings.py 中,MIDDLEWARE 是一个列表,不能更改其名称。并且,如果你使用 Django 内置功能如认证或消息系统,某些中间件必须存在,例如:

  • django.contrib.sessions.middleware.SessionMiddleware: 必须存在于 MIDDLEWARE 中,否则会导致会话处理失败。
  • django.contrib.auth.middleware.AuthenticationMiddleware: 如果要使用认证系统,此中间件必须添加。

通过以上的文件结构,Django 项目实现了前后端分离的模块化开发,每个部分职责清晰,便于管理和扩展。每个应用的目录也独立组织,方便大规模项目的维护。

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

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

相关文章

黑神话悟空小西天

游戏里我们一开始就出现一个很可爱的小和尚&#xff0c;当脚步声传来&#xff0c;小和尚化身为一尊弥勒佛&#xff0c;而这尊弥勒佛的大小和位置都在说&#xff0c;这里没有弥勒佛的位置。 随后天命人进入一片雪地&#xff0c;遇到了赤尻马猴&#xff0c;打跑赤尻马猴&#xff…

C++_unordered系列关联式容器(哈希)

unordered系列关联式容器&#xff0c;我们曾在C_map_set详解一文中浅浅的提了几句。今天我们来详细谈谈 本身在C11之前是没有unordered系列关联式容器的&#xff0c;unordered系列与普通的map、set的核心功能重叠度达到了90%&#xff0c;他们最大的不同就是底层结构的不同&…

AVL树(平衡二叉树)的介绍以及相关构建

欢迎光临 &#xff1a; 羑悻的小杀马特-CSDN博客 目录 一AVL树的介绍&#xff1a; 二AVL树的实现&#xff1a; 1结构框架&#xff1a; 2节点的插入&#xff1a; 旋转&#xff1a; 21左单旋&#xff1a; 2.1.1左单旋介绍及步骤&#xff1a; 2.1.2左单旋代码实…

【JavaSE系列】IO流

目录 前言 一、IO流概述 二、IO流体系结构 三、File相关的流 1. FileInputStream 2. FileOutputStream 3. FileReader 4. FileWriter 四、缓冲流 五、转换流 1. InputStreamReader 2. OutputStreamWriter 六、数据流 七、对象流 八、打印流 九、标准输入输出流…

C++学习9.28

1> 创建一个新项目&#xff0c;将默认提供的程序都注释上意义 por QT core gui #QT表示引入的类库 core:核心库例如IO操作在该库中 gui:图形化显示库 #如果要使用其他类库中的相关函数&#xff0c;就需要调用相关类库后&#xff0c;才能加以使用greaterThan(Q…

c++926

1.什么是虚函数&#xff1f;什么是纯虚函数&#xff1f; 虚函数&#xff1a;被virtual关键字修饰的成员函数&#xff0c;用于实现多态性&#xff0c;通过基类访问派生类的函数。纯虚函数&#xff1a;在虚函数后面添加0&#xff0c;只有声明而没有实现&#xff0c;需要派生类提…

天龙八部怀旧单机微改人面桃花+安装教程+GM工具+虚拟机一键端

今天给大家带来一款单机游戏的架设&#xff1a;天龙八部怀旧单机微改人面桃花。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xf…

图说数集相等定义表明“R各元x的对应x+0.0001的全体=R“是几百年重大错误

黄小宁 设集A&#xff5b;x&#xff5d;表A各元均由x代表&#xff0c;&#xff5b;x&#xff5d;中变量x的变域是A。其余类推。因各数x可是数轴上点的坐标故x∈R变为实数yx1的几何意义可是&#xff1a;一维空间“管道”g内R轴上的质点x∈R(x是点的坐标)沿“管道”g平移变为点y…

红队信息搜集扫描使用

红队信息搜集扫描使用 红队行动中需要工具化一些常用攻击&#xff0c;所以学习一下 nmap 等的常规使用&#xff0c;提供灵感 nmap 帮助 nmap --help主机扫描 Scan and no port scan&#xff08;扫描但不端口扫描&#xff09;。-sn 在老版本中是 -sP&#xff0c;P的含义是 P…

视频美颜SDK与直播美颜工具API是什么?计算机视觉技术详解

今天&#xff0c;小编将深入探讨视频美颜SDK与直播美颜工具API的概念及其背后的计算机视觉技术。 一、视频美颜SDK的概念 视频美颜SDK是一套用于开发实时美颜效果的工具集&#xff0c;开发者可以利用它在视频流中实现面部特征的优化。这些SDK通常提供了一系列功能&#xff0c…

.NET 红队武器库和资源集合 (第38期)

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

计算机网络自顶向下(1)---网络基础

目录 1.网络的分类 2.网络协议 3.网络分层结构 1.OSI七层模型 2.TCP/IP四层模型 3.网络与OS的关系 4.网络传输基本流程 1.协议报头 5.网络中的地址管理 1.IP地址 2.端口号 6.传输层协议 1.TCP协议 2.UDP协议 3.网络字节序 7.socket 1.网络的分类 局域网&…

excel-VBA知识点记录

1、计算机硬件的组成部分 内存&#xff0c;一旦断电&#xff0c;存储在里面的数据就消失了&#xff0c;而硬盘是永久存储数据的&#xff0c;所以刚开始我们在文件里面编辑没有按保存的时候&#xff0c;数据是在内存里面的&#xff0c;一旦断电数据就没了&#xff0c;但我们点了…

大语言模型知识点分享

1 目前主流的开源模型体系有哪些&#xff1f; Prefix Decoder 系列模型 核心点&#xff1a; 输入采用双向注意力机制&#xff0c;输出为单向注意力。双向注意力意味着输入的每个部分都可以关注到输入的所有其他部分&#xff0c;这在理解上下文时具有很强的优势。 代表模型&a…

六级翻译 高分笔记

第一节 句子的拆分与重组 核心原则&#xff1a;拆主干&#xff0c;补修饰 一、句子的拆分与重组 1.青藏铁路是世界最高最长的高原铁路。&#xff08;“的”字前面所有去掉&#xff0c;就是句子主干&#xff09; The Qinghai-Tibet Railway is the highest and longest plate…

css 数字比汉字要靠上

这个问题通常是由于数字字体的下排的问题造成的&#xff0c;也就是数字的底部边缘位置比汉字的顶部边缘位置更靠下。为了解决这个问题&#xff0c;可以尝试以下几种方法&#xff1a; 使用CSS的vertical-align属性来调整对齐方式。例如&#xff0c;可以将数字的对齐方式设置为to…

数组的练习

1.使用函数的递归方法&#xff0c;输出给定字符串的逆序&#xff0c;如"abcdefg"&#xff0c;输出为“gfedcba”. 方法一&#xff1a;首先不采用递归的方法&#xff0c;如何完成上述要求 #include<stdio.h> #include<string.h> int main() {char arr[]…

3.数据结构与算法-基本概念和术语

数据、数据元素、数据项和数据对象 数据 数据元素 学生表-记录 数-节点 图&#xff1a;顶点 数据项 数据对象 数据对象与数据元素的关系 数据结构 数据结构的三个部分 逻辑结构的种类 存储结构分类 顺序存储结构 链式存储结构 索引存储结构 散列存储结构 数据类型和抽象数据类…

Linux中的文件缓冲区

目录 使用 dup2 系统调用 为命令行解释器添加重定向功能 理解缓冲区问题 缓存区的刷新策略 FILE的本质 尝试封装C语言的FILE 小共识&#xff1a; cd->当前路径->当前进程的工作路径->工作路径可以被修改->每个进程都有当前路径->故cd改的是子进程的路径-…

算力共享平台的控制流程,业务流程

目录 控制流程 业务流程 在提供的计算机网络系统结构示意图和描述中,我们可以区分出控制流程和业务流程的组成部分。 控制流程 控制流程主要涉及系统内部的管理、调度和监控操作,以确保系统能够按照预定的规则和策略运行。在这个例子中,控制流程可能包括但不限于以下部分…