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

news2024/9/28 3:27:12

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 views
    
    urlpatterns = [
        path('your_url_path/', views.your_view_function, name='your_url_name'),
    ]
    
    # 项目的urls.py
    from django.urls import path, include
    
    urlpatterns = [
        ...
        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.coloradmin.cn/o/1643974.html

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

相关文章

【Python项目】基于时间序列的【大气污染预测系统】

技术简介:使用Python技术、B/S架构、MYSQL数据库等实现。 系统简介:本系统的主要使用角色为普通用户和管理员用户,两者的功能几乎是一致的,但管理员用户比普通用户多了用户管理的功能,可以对系统内的用户进行管理。普通…

Vue的项目启动指令分析

通过Vue CLI脚手架创建的项目,默认的启动项目方式是 npm run serve 这里的serve是可以修改的。 在创建的项目目录中,找到package.json 双击打开,找到scripts部分 在scripts部分,有一个"serve"键值对,这里的…

如何进行Go语言的性能测试和调优?

文章目录 开篇一、性能测试1. 使用标准库中的testing包2. 使用第三方工具 二、性能调优1. 优化算法和数据结构2. 减少不必要的内存分配和垃圾回收3. 并发和并行 结尾 开篇 Go语言以其出色的性能和简洁的语法受到了广大开发者的喜爱。然而,在实际开发中,…

DML操作表的数据

一、增加数据 语法: INSERT [INTO] 表名 [( 列名表 )] VALUES ( 值列表 ) 1.1 插入全部字段 l 所有的字段名都写出来 INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3); l 不写字段名 INSERT INTO 表名 VALUES (值1, 值2, 值3…); 注&…

我这次没有蹭Oracle发布热度的原因

这次没有去蹭热度,原因有几个。 主观 确实是生病了,身体不舒服,那几个卷王在卷公众号的时候,我在床上卷成一团。 不和这几个打了鸡血的人比了。我卷了一点和他们不一样的。我节日期间看到我初中同班同学发的微博。 对这个就是我…

创造价值与回报:创业者的思维格局与商业智慧

在纷繁复杂的商业世界中,有一种信念始终贯穿于无数创业者的心中——那就是创造价值。张磊的这句“只要不断地创造价值,迟早会有回报”道出了创业者的核心思维格局和商业智慧。本文将从创业者的角度,探讨创造价值的重要性,以及如何…

力扣每日一题112:路径总和

题目 简单 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是…

《原则》生活和工作 - 三余书屋 3ysw.net

原则:生活和工作 您好,今天我们解读的书是《原则:生活和工作》。这本书和我们之前解读过的《原则:应对变化中的世界秩序》是同一个作者写的。那本书的主题非常宏大,它讨论的是世界运行的原则。而今天我们聊的《原则&a…

消费品行业的5G新时代:2024年消费品行业趋势洞察报告

来源:安永 2023 年,我国社会消费品零售总额达人民币 47.147.147.147.1万亿元,比上年增长 7.2%7.2%7.2%7.2%;最终 消费支出拉动经济增长 4.34.34.3个百分点,比上年提高 3.13.13.1个百分点,对经济增长的贡献…

linux C语言Makefile

ChatGPT 在Linux中使用Makefile来自动化C语言项目的构建过程是很普遍的实践。Makefile是一个包含了一系列构建目标及如何构建这些目标的依赖和规则的文本文件。 一个基本的Makefile例子可能会像这样: # 定义编译器 CCgcc# 定义编译选项 CFLAGS-I.# 定义可执行文件…

C++ : list类及其模拟实现

目录 一、list的介绍和使用 list的介绍 list的使用 1.list的构造 构造函数 2.list iterator 的使用 3.list capacity 4.list element access 5.list modifiers 6.list的迭代器失效 二、list的模拟实现 要点 list类模拟实现部分接口全部代码展示 一、list的介绍和使…

C++笔试强训day13

目录 1.⽜⽜冲钻五 2.最长无重复子数组 ​编辑 3.重排字符串 1.⽜⽜冲钻五 链接 简单逻辑题&#xff0c;按照题目意思模拟就能过。 详细代码&#xff1a; #include <iostream>using namespace std;int n,k; void solve() {cin >> n >> k;string s;cin…

HNU-人工智能-实验2-简单CSP问题

人工智能-实验2 计科210x 甘晴void 一、实验目的 求解约束满足问题 使用回溯搜索算法求解八皇后问题 二、实验平台 课程实训平台https://www.educoder.net/paths/369 三、实验内容 3.0 题目要求 回溯搜索算法 搜索与回溯是计算机解题中常用的算法&#xff0c;很多问…

C#知识|如何在WinForm窗体中实现分割线绘制?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 在上位机UI设计中经常会用到分割线&#xff0c;用来分割界面区域。 像在KingSCADA、杰控、昆仑通态、WinCC、组态王、力控、易控等组态软件中非常简单&#xff0c;有现成的划线操作&#xff0c;选中相关工具直接绘制即…

一文看懂卷积神经网络CNN(2)—卷积神经网络

目录 一、卷积 1、卷积的定义 &#xff08;1&#xff09;一维卷积 &#xff08;2&#xff09;二维卷积 2、互相关 3、互相关和卷积的区别 4、卷积的变种 5、卷积的数学性质 &#xff08;1&#xff09;交换性 &#xff08;2&#xff09;导数 二、卷积神经网络 1、卷…

Linux 内核简介

操作系统简介 操作系统概念&#xff1a;操作系统处于硬件和应用程序的中间层&#xff0c;控制和管理整个计算机系统的硬件和软件资源&#xff0c;提供给用户和其他软件方便的接口和环境&#xff0c;它是计算机系统的最基本的系统软件。 操作系统功能: 处理机管理存储器管理设…

基于Springboot的房屋租赁管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的房屋租赁管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

01 JVM -- JVM 体系结构、HotSpot

1. JVM、HotSpot、 OpenJDK 的区别 JVM (Java Virtual Machine) 是一个虚拟机HotSpot 是 JVM 规范的一个实现。HotSpot 虚拟机通过即时编译 (JIT) 技术将 Java 字节码转换为本地机器码&#xff0c;以提高程序的执行效率。OpenJDK 是一个项目名&#xff0c;它在 HotSpot 的基础…

puzzle(1041)植此青绿、拼图迷宫

目录 植此青绿 简单模式 困难模式 拼图迷宫 核心规则 中级模式具体规则 十字的交叉点 十字的端点、L的交叉点 L的端点 直线、矩形 U的端点 中级模式精选关卡 基本策略 高级模式具体规则 Z形状 T形状 高级模式精选关卡 植此青绿 最强大脑同款项目。 给出7个正…

JavaEE企业级开发中常用的JDK7和JDK8的时间类

JDK7时间类 全世界的时间有一个统一的计算标准 在同一条经线上的时间是一样的 格林威治时间 简称GMT 计算核心 地球自转一天是24小时 太阳直射正好是12小时 但是误差太大 现在用原子钟来代替 用铯原子震动的频率来计算时间&#xff0c;作为世界的标准时间UTC 中国标准时间…