iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >django中的setting最佳配置小结
  • 512
分享到

django中的setting最佳配置小结

小结djangosetting 2022-06-04 19:06:31 512人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

Django settings详解 1.基础 Django_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运行,P

Django settings详解

1.基础

Django_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运行,Python可以搜索到。如果需要运行在其他服务器上,就必须指定DJANGo_SETTINGS_MODULE变量。

2.默认设定

一个django的settings文件不需要我们手动去设置所有项目,因为系统已经默认设置好了。我们只需要修改我们使用的设

定就好了。默认的设置在django/conf/global_settings.py文件中。django在编译时,先载入global_settings.py中的配置,然后加载指定的settings文件,重写改变的设定。

好了,步入正文。

前面的随笔中我们经常会改setting配置也经常将一些配置混淆今天主要是将一些常见的配置做一个汇总。

setting配置汇总

1、app路径


INSTALLED_APPS = [
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'app1.apps.App1Config', 
 # 默认已有 如果没有只要添加app名称即可 例如: 'app1'
 # 新建的应用都要在这里添加
]

2、数据库配置

如果使用django的默认sqlite3数据库则不需要改


DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.sqlite3',
 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 }
}

如果使用Mysql数据库需要将上述数据库注掉修改如下


DATABASES = {
 'default': {  
 'ENGINE': 'django.db.backends.mysql',
 'NAME': 'blog', #你的数据库名称 数据库需要自己提前建好
 'USER': 'root', #你的数据库用户名
 'PASSWord': '', #你的数据库密码
 'HOST': '', #你的数据库主机,留空默认为localhost
 'PORT': '3306', #你的数据库端口
 }
}

并且需要在应用的__init__.py文件添加


import pymysql
pymysql.install_as_MySQLdb()

详情可以查看:Http://www.lsjlt.com/article/128674.htm

3、sql语句


LOGGING = {
 'version': 1,
 'disable_existing_loggers': False,
 'handlers': {
 'console':{
  'level':'DEBUG',
  'class':'logging.StreamHandler',
 },
 },
 'loggers': {
 'django.db.backends': {
  'handlers': ['console'],
  'propagate': True,
  'level':'DEBUG',
 },
 }
} 

当你的操作与数据库相关时 会将我们的写的语句翻译成sql语句在服务端打印。

4、静态文件目录


STATIC_URL = '/static/' #调用时目录
STATICFILES_DIRS=[
 os.path.join(BASE_DIR,"static"), #具体路径
]

5、如果数据库中的UserInfo(用户表)继承django内置AbstractUser

1)model需导入


from django.contrib.auth.models import AbstractUser

2)配置文件


AUTH_USER_MODEL = "应用名.UserInfo"

6、中间件

自己写的中间件,例如在项目中的md文件夹下md.py文件中的M1与M2两个中间件


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',
 'md.md.M1',
 'md.md.M2',
]

注意自己写的中间件,配置要写在系统中的后面

7、session存储的相关配置

1)数据库配置(默认)


Django默认支持Session,并且默认是将Session数据存储在数据库中,即:django_session 表中。
配置 settings.py
 SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 引擎(默认)
 SESSION_COOKIE_NAME = "sessionid"   # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
 SESSION_COOKIE_PATH = "/"    # Session的cookie保存的路径(默认)
 SESSION_COOKIE_DOMaiN = None    # Session的cookie保存的域名(默认)
 SESSION_COOKIE_SECURE = False    # 是否https传输cookie(默认)
 SESSION_COOKIE_HTTPONLY = True    # 是否Session的cookie只支持http传输(默认)
 SESSION_COOKIE_AGE = 1209600    # Session的cookie失效日期(2周)(默认)
 SESSION_EXPIRE_AT_BROWSER_CLOSE = False   # 是否关闭浏览器使得Session过期(默认)
 SESSION_SAVE_EVERY_REQUEST = False   # 是否每次请求都保存Session,默认修改之后才保存(默认)

2)缓存配置


配置 settings.py
 SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎
 SESSION_CACHE_ALIAS = 'default'    # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
 SESSION_COOKIE_NAME = "sessionid"   # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
 SESSION_COOKIE_PATH = "/"    # Session的cookie保存的路径
 SESSION_COOKIE_DOMAIN = None    # Session的cookie保存的域名
 SESSION_COOKIE_SECURE = False    # 是否Https传输cookie
 SESSION_COOKIE_HTTPONLY = True    # 是否Session的cookie只支持http传输
 SESSION_COOKIE_AGE = 1209600    # Session的cookie失效日期(2周)
 SESSION_EXPIRE_AT_BROWSER_CLOSE = False   # 是否关闭浏览器使得Session过期
 SESSION_SAVE_EVERY_REQUEST = False   # 是否每次请求都保存Session,默认修改之后才保存

3)默认配置


配置 settings.py
 SESSION_ENGINE = 'django.contrib.sessions.backends.file' # 引擎
 SESSION_FILE_PATH = None     # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir() 
 SESSION_COOKIE_NAME = "sessionid"    # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
 SESSION_COOKIE_PATH = "/"     # Session的cookie保存的路径
 SESSION_COOKIE_DOMAIN = None    # Session的cookie保存的域名
 SESSION_COOKIE_SECURE = False    # 是否Https传输cookie
 SESSION_COOKIE_HTTPONLY = True    # 是否Session的cookie只支持http传输
 SESSION_COOKIE_AGE = 1209600    # Session的cookie失效日期(2周)
 SESSION_EXPIRE_AT_BROWSER_CLOSE = False   # 是否关闭浏览器使得Session过期
 SESSION_SAVE_EVERY_REQUEST = False    # 是否每次请求都保存Session,默认修改之后才保存

注意:

1)也可以自定义配置 但是自定义的配置都要写到配置文件最后 代码中使用时可以导入配置


from django.conf import settings
settings.配置名

2)上面所有配置都是针对特定问题需要修改的 系统默认配置不做说明

3)上面配置只是前面django系列随笔所遇到的常用配置 后续所遇配置都会逐步在此随笔中持续添加跟新

下面看段django settings最佳配置实例代码,具体代码如下所示:


# encoding=utf-8
import os
import Socket
SITE_ID = 1
# 项目的根目录
# 简化后面的操作
PROJECT_ROOT = os.path.dirname(os.path.dirname(__file__))
# 加载应用
# 把应用添加到INSTALLED_APPS中
from apps.kuser.mysetting import myapp as kuser_app
from apps.blog.mysetting import myapp as blog_app
MY_APPS = blog_app + kuser_app
# 加载静态文件
from apps.blog.mysetting import my_staticfiles as blog_staticfiles
from apps.kuser.mysetting import my_staticfiles as kuser_staticfiles
MY_STATIC_DIRS = blog_staticfiles + kuser_staticfiles
# 加载模板文件
from apps.blog.mysetting import my_templates as blog_templates
from apps.kuser.mysetting import my_templates as kuser_templates
MY_TEMPLATE_DIRS = blog_templates + kuser_templates
# 密钥配置
# 适用于开发环境和部署环境
# 可以从系统环境中,配置文件中,和硬编码的配置中得到密钥
try:
 SECRET_KEY = os.environ['SECRET_KEY']
except:
 try:
 with open(os.path.join(PROJECT_ROOT, 'db/secret_key').replace('\', '/')) as f:
  SECRET_KEY = f.read().strip()
 except:
 SECRET_KEY = '*lk^6@0l0(iulgar$j)faff&^(^u+qk3j73D18@&+ur^xuTxY'
# 得到主机名
def hostname():
 sys = os.name
 if sys == 'nt':
 hostname = os.getenv('computername')
 return hostname
 elif sys == 'posix':
 host = os.popen('echo $HOSTNAME')
 try:
  hostname = host.read()
  return hostname
 finally:
  host.close()
 else:
 raise RuntimeError('Unkwon hostname')
#调试和模板调试配置
#主机名相同则为开发环境,不同则为部署环境
#ALLOWED_HOSTS只在调试环境中才能为空
if socket.gethostname().lower() == hostname().lower():
 DEBUG = TEMPLATE_DEBUG = True
 ALLOWED_HOSTS = []
else:
 ALLOWED_HOSTS = [
 'baidu.com',
 '0.0.0.0',
 ]
 DEBUG = TEMPLATE_DEBUG = False
#数据库配置
MYDB = {
 'mysql': {
 'ENGINE': 'django.db.backends.mysql',
 'NAME': 'books', #你的数据库名称
 'USER': 'root', #你的数据库用户名
 'PASSWORD': '', #你的数据库密码
 'HOST': '', #你的数据库主机,留空默认为localhost
 'PORT': '3306', #你的数据库端口
 },
 'sqlite': {
 'ENGINE': 'django.db.backends.sqlite3',
 'NAME': os.path.join(PROJECT_ROOT, 'db/db.sqlite3').replace('\', '/'),
 }
}
# 给静态文件url一个后缀,在templates里用到的。
# 映射到静态文件的url
# STATIC_URL的含义与MEDIA_URL类似
STATIC_URL = '/static/'
# 总的static目录
# 可以使用命令 manage.py collectstatic 自动收集static文件
# STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static').replace('\', '/')
#放各个app的static目录及公共的static目录
#STATICFILES_DIRS:和TEMPLATE_DIRS的含义差不多,就是除了各个app的static目录以外还需要管理的静态文件设置,
#比如项目的公共文件差不多。然后给静态文件变量赋值,告诉Django,静态文件在哪里
#另外,Django提供了一个findstatic命令来查找指定的静态文件所在的目录,例如:D:TestDjango>python manage.py findstatic Chrome.jpg
# 默认情况下(如果没有修改STATICFILES_FINDERS的话),Django首先会在STATICFILES_DIRS配置的文件夹中寻找静态文件,然后再从每个app的static子目录下查找,
# 并且返回找到的第一个文件。所以我们可以将全局的静态文件放在STATICFILES_DIRS配置的目录中,将app独有的静态文件放在app的static子目录中。
# 存放的时候按类别存放在static目录的子目录下,如图片都放在images文件夹中,所有的CSS都放在css文件夹中,所有的js文件都放在js文件夹中。
STATICFILES_DIRS = (
 ("downloads", os.path.join(PROJECT_ROOT, 'static/downloads').replace('\', '/')),
 ("uploads", os.path.join(PROJECT_ROOT, 'static/uploads').replace('\', '/')),
)
# 将app中的静态文件添加到静态文件配置列表中
STATICFILES_DIRS += MY_STATIC_DIRS
# 最后关键的部分是STATICFILES_DIRS以下配置
# 简要说一下,static文件夹在项目里,有css js images 三个文件夹(看项目结构),他们的路径分别是:
# os.path.join(STATIC_ROOT,'css'),os.path.join(STATIC_ROOT,'js'),os.path.join(STATIC_ROOT,'images');
# 我们分别给他们起三个别名css,js,images(你可以随意给,不过为了易记,我们原名称指定别名了)
TEMPLATE_DIRS = (
 os.path.join(PROJECT_ROOT, 'templates').replace('\', '/'),
)
# 配置应用的模板文件路径
TEMPLATE_DIRS += MY_TEMPLATE_DIRS
# 配置缓存
 CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  'LOCATION': 'unix:/tmp/memcached.sock',
  'KEY_PREFIX': 'lcfcn',
  'TIMEOUT': None
 }
 }
LOGIN_REDIRECT_URL = '/'
LOGIN_URL = '/auth/login/'
LOGOUT_URL = '/auth/logout/'
# 指用户上传的文件,比如在Model里面的FileFIeld,ImageField上传的文件。如果你定义
# MEDIA_ROOT=c:tempmedia,那么File=models.FileField(upload_to="abc/"),上传的文件就会被保存到c:tempmediaabc。MEDIA_ROOT必须是本地路径的绝对路径。
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'static/uploads')
# MEDIA_URL是指从浏览器访问时的地址前缀。
MEDIA_URL = '/uploads/'
# 应用注册列表
INSTALLED_APPS = (
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.sites',
 'django.contrib.sitemaps',
)
#为了不和系统应用混合,自己开发的应用放在这里
# 将自己写的app添加到应用列表中去
INSTALLED_APPS += MY_APPS
# django 中间件
# django处理一个Request的过程是首先通过django 中间件,然后再通过默认的URL方式进行的。
# 所以说我们要做的就是在django 中间件这个地方把所有Request拦截住,
# 用我们自己的方式完成处理以后直接返回Response,那么我们可以简化原来的设计思路,
# 把中间件不能处理的 Request统统不管,丢给Django去处理。
MIDDLEWARE_CLASSES = (
 'django.middleware.cache.UpdateCacheMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 # 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.cache.FetchFromCacheMiddleware',
)
ROOT_URLCONF = 'lcforum.urls'
WSGI_APPLICATION = 'lcforum.wsgi.application'
#数据库配置
DATABASES = {
 'default': MYDB.get('sqlite'),
}
# 语言
LANGUAGE_CODE = 'zh-cn'
# 时区
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = True
# 在template中使用静态文件
# 采用这种方式需要有一些额外配置,打开settings.py,确认TEMPLATE_CONTEXT_PROCESSORS中包含有'django.core.context_processors.static'
# TEMPLATE_CONTEXT_PROCESSORS = (
# 'django.core.context_processors.debug',
# 'django.core.context_processors.i18n',
# 'django.core.context_processors.media',
# 'django.core.context_processors.static',
# 'django.contrib.auth.context_processors.auth',
# 'django.contrib.messages.context_processors.messages',
#
# 'django.core.context_processors.tz',
# 'django.contrib.messages.context_processors.messages',
# # 'blog.context_processors.custom_proc',自定义函数
# )
#from django.conf import settings
#gettext = lambda s: s
#getattr()
# 假设有个工程djangodemo,有两个app为demo1跟demo2
# django处理static的方法是把各个app各自的static合并到一处
# 比如:
# djangodemo/djangodemo/static 放置公共静态文件
# djangodemo/demo1/static 放置该app自己的静态文件
# djangodemo/demo2/static 放置该app自己的静态文件
# 可以这么设置:
# STATIC_ROOT = '/www/djangodemo/djangodemo/static '
# STATIC_URL = '/static/'
# STATICFILES_DIRS = (
# 'djangodemo/static',
# 'demo1/static/',
# 'demo2/static/',
# )
# 使用命令
# manage.py collectstatic
# 就会自动把所有静态文件全部复制到STATIC_ROOT中
# 如果开启了admin,这一步是很必要的,不然部署到生产环境的时候会找不到样式文件
# 不要把你项目的静态文件放到这个目录。这个目录只有在运行manage.py collectstatic时才会用到

总结

以上所述是小编给大家介绍的django中的setting最佳配置小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程网网站的支持!

--结束END--

本文标题: django中的setting最佳配置小结

本文链接: https://www.lsjlt.com/news/15954.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详细分析mybatis中的setting配置
    这篇文章主要详细分析mybatis中的setting配置,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。在mybaits中,setting的的配置参数如下(如果不在配置文件中配置将使用默认值):设置参数描述有效值...
    99+
    2023-05-31
    mybatis setting setti
  • maven中setting配置的方法是什么
    在Maven中,可以通过以下方法配置settings:1. 在用户目录下的.settings文件夹中创建settings.xml文件...
    99+
    2023-10-08
    maven
  • Django中log日志记录的最佳实践
    目录1、模块总览2、Loggers3、Handlers4、Filters5、Formatters6、日志记录方式7、logger 参数解析8、handler 参数解析1.Rotati...
    99+
    2023-05-17
    Django项目中日志记录 django 中如何优雅的记录日志 django配置log日志
  • Ubuntu最佳配置的方法是什么
    本篇内容主要讲解“Ubuntu最佳配置的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu最佳配置的方法是什么”吧!一、系统配置1、关闭sudo密码为了避免每次使用sudo命令...
    99+
    2023-07-04
  • Django 中的实时 shell:Go 是否是最佳选择?
    随着 Web 开发技术的不断发展,越来越多的开发者开始使用 Django 这一强大的 Web 开发框架。Django 以其灵活性、易用性和可扩展性而备受开发者们的青睐。在 Django 中,实时 shell 是一个极其重要的工具,能够帮助...
    99+
    2023-07-08
    django 实时 shell
  • Python和Django中路径同步的最佳实践?
    Python和Django是现代Web开发中最热门的技术之一。其中,路径同步是一个非常重要的问题。在本文中,我们将讨论Python和Django中路径同步的最佳实践,并提供演示代码。 路径同步是指在不同的环境中使用相同的路径。例如,在本地开...
    99+
    2023-06-03
    path 同步 django
  • 选择云服务器配置的最佳类型
    1. 了解云服务器 在选择云服务器配置之前,首先需要了解云服务器的基本概念和特点。云服务器是一种基于云计算技术的虚拟服务器,可以通过互联网进行远程访问和管理。与传统的物理服务器相比,云服务器具有更高的灵活性、可扩展性和可靠性。 2. 选择...
    99+
    2023-10-27
    服务器配置 类型
  • Django 中的实时响应:Go 是否是最佳选择?
    Django 是一款流行的 Python Web 框架,它可以帮助开发者快速构建高效的 Web 应用程序。然而,在实时响应方面,Django 的表现并不是最佳的。本文将探讨在实时响应方面,Go 是否是更好的选择。 Django 的实时响应 ...
    99+
    2023-06-14
    实时 django 响应
  • 如何在Java和Spring中使用Django的最佳实践?
    Java和Spring是目前最流行的开发语言和框架之一。而Django则是Python中最流行的Web框架之一。虽然Java和Python是不同的编程语言,但是在开发过程中经常会遇到需要使用其他编程语言的情况。那么在Java和Spring中...
    99+
    2023-07-19
    django bash spring
  • NumPy 和 Django 在 Java 中打包的最佳实践是什么?
    在开发应用程序时,使用多种编程语言和框架是很常见的。Java 是一种非常流行的编程语言,而 NumPy 和 Django 是 Python 中非常流行的库和框架。在某些情况下,您可能需要将这些库和框架打包到 Java 应用程序中。本文将介...
    99+
    2023-09-04
    打包 numy django
  • 选择云服务器配置模式的最佳实践
    1. 了解云服务器配置模式 在选择云服务器配置模式之前,我们需要了解一些基本概念。云服务器配置模式通常分为三种:共享型、独享型和混合型。 共享型:多个用户共享同一台物理服务器的资源,适用于小型网站和应用。 独享型:一台物理服务器只分配给...
    99+
    2023-10-27
    服务器配置 模式
  • PHP日志接口在Django中的应用:最佳实践分享!
    在现代web应用程序中,日志是不可或缺的。它们帮助我们了解应用程序的运行情况,以及在发生问题时排查问题。在这方面,PHP有着一流的日志记录功能,它可以将日志记录到各种目标,如文件、数据库、syslog等。然而,如果你是一个Django开发...
    99+
    2023-09-15
    日志 接口 django
  • Java 函数编程的最佳实践:从 Django 中汲取灵感
    Java 函数式编程在近年来越来越受到开发者们的关注。它的设计理念是将函数作为一等公民,将函数视为对象来进行操作,从而提高代码的可维护性和可读性。然而,要想在 Java 中实现函数式编程并不是一件容易的事情,需要一些好的编程实践和技巧。 ...
    99+
    2023-10-09
    函数 django 编程算法
  • 在Python IDE中使用Django和NumPy的最佳实践是什么?
    随着数据科学和数据分析的发展,Python成为了一种非常流行的编程语言,它不仅仅是一个通用的编程语言,而且还是一种非常出色的数据分析语言。Python具有很多优秀的框架和库,可以帮助开发人员更快、更有效地开发代码。在本文中,我们将探讨如何在...
    99+
    2023-07-31
    ide django numy
  • 编程算法之路:探索Java和Django中的最佳路径
    在计算机编程中,算法是解决问题的关键,而编程语言则是实现算法的工具。Java和Django是两种不同的编程语言,它们各自具有自己的特点和优势。在本文中,我们将探索Java和Django中编程算法的最佳路径。 Java是一种面向对象的编程语...
    99+
    2023-08-15
    django path 编程算法
  • Mybatis之typeAlias配置的3种方式小结
    目录Mybatis typeAlias配置1.定义别名2.扫描包方式3.注解方式springboot加载mybatis的typeAlias问题为了清晰可见,直接贴代码Mybatis ...
    99+
    2024-04-02
  • 总结PHP中初始化空数组的最佳方法
    PHP支持三种类型的数组: 索引数组:具有数字索引的数组。 关联数组:具有命名键的数组。 多维数组:它包含特定数组中的一个或多个数组。 注意:为什么声明一个空数组然后将项目推送到该数组总是好的做法? 声明一个空数组,然后开始在其中输入元素...
    99+
    2023-09-01
    php javascript 开发语言
  • PHP、Django 和 Git 中的数组操作:如何选择最佳工具?
    数组是编程语言中最基本的数据结构之一。在 PHP、Django 和 Git 中,数组操作是常见的任务。然而,这些工具之间的数组操作有很大的不同。在本文中,我们将比较 PHP、Django 和 Git 中的数组操作,以便您选择最佳工具。 P...
    99+
    2023-10-03
    django git 数组
  • Python Django 开发技术中,如何选择最佳的存储引擎?
    Python Django 是一款流行的 Web 开发框架,它提供了许多强大的功能和工具,使得开发人员能够快速构建高质量的 Web 应用程序。在 Django 开发过程中,选择合适的存储引擎对于应用程序的性能和可扩展性至关重要。本文将介绍几...
    99+
    2023-06-19
    django 开发技术 存储
  • Spring配置数据源的三种方式(小结)
    目录一、前言三、开发数据源的方式方式1:手动输入方式2:Properties配置文件方式3:Spring配置数据源四、总结一、前言 今天学习了用spring配置Druid数据源的三种...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作