計算機基礎知識66

Auth的補充

#概念:是django 的一個app,關于用戶的登錄,退出,注冊...
# 配置文件中配置:表會被遷移

INSTALLED_APPS = ['django.contrib.auth',]

# auth有哪些表---權限控制:

Permission:auth_permission
Group:auth_group
User:auth_user ?--->密碼加密auth_group_permissions
auth_user_groups
auth_user_user_permissions

# 目前階段只用 auth_user來做用戶的一些操作

# 如果用戶沒登錄:

request.user取出的是匿名用戶:

????????AnonymousUser類的對象,也有pk,name,is_authenticated
# 模塊常用方法:
1 user = authenticate(username='usernamer',password='password')

# 校驗用戶:必須傳username和password
user = authenticate(username='usernamer',password='password')
from django.contrib.auth.models import User
user=User.objects.filter(username=username).first()
if user and user.check_password(password):print('用戶名密碼正確')
else:print('用戶名密碼錯誤')

2 login:用戶校驗通過,讓它登錄,執行它
? ? ?? ?-當前登錄用戶寫入到session中
? ? ?? ?-后續 request.user 就能拿到當前登錄用戶

auth.login(request, user)
user=request.user

3 logout:退出,清空session
4 request.user.is_authenticated:返回True或False
5 login_requierd :登錄認證裝飾器,放在視圖函數上 ,會重定向
? ? ? ? ????????@login_required(login_url='/login/')
6 create_user:普通用戶
? ? ?? ?-User.objects.create()--密碼是加密的---》這樣存密碼是明文的
7 create_superuser:超級用戶 ?python38 manage.py createsuperuser

8 check_password :通過明文密碼校驗密碼是否正確
9 set_password:修改密碼

user.set_password(new_password)
user.save()

10 User對象的屬性:
username?
password
is_staff : 用戶是否擁有網站的管理權限,能不能登錄admin后臺管理
is_active: 是否允許用戶登錄, 設置為 False,可以在不刪除用戶的前提下禁止用戶登錄
? ? ? ? ? ?????????????is_active是False----authenticate也查不出來
is_superuser:是否是超級管理員,admin中權限最高

# auth模塊的密碼加密:同樣的密碼--》再次加密--》密文也不一樣
?? ?pbkdf2_sha256$ ? # 加密方式?
? ? 260000$? ? ? ? ? ? ? ?#過期時間
? ? H93ubuUFw6FbYc6B8ojzKA$? ? ? ? ? ? ??# 隨機串,,秘鑰
? ? H0ZnaiJOm/pI4K802Y2TcO5SQ7iWDcx5E+mb/hdABd8=? ? ? ?#明文加密后的
# 后期如果你自己寫了User表,但是想用人家的密碼加密,就可以使用?

res=make_password('123456')
check_password(明文,密文)

擴寫auth的user表

# 第一種方案:通過一對一擴展(基本不用)

from django.contrib.auth.models import User
class UserDetail(models.Model):user=models.OneToOneField(to=User)phone=models.CharField(max_length=32)

# 第二種:通過繼承 AbstractUser表來擴寫
1、在models.py中寫用戶表

from django.contrib.auth.models import AbstractUser
class UserInfo(AbstractUser):# 原來有的字段就不需要寫了,只需要擴寫你想寫的字段mobile=models.CharField(max_length=32)icon=models.ImageField(upload_to='/icon/',default='default.png') # 路徑和默認值

2、在settings.py 配置

AUTH_USER_MODEL='app名字.表名'  # 不區分大小寫
AUTH_USER_MODEL='app01.UserInfo'

3、之前不要遷移數據,一旦遷移過,就不行了
? ? ? 一旦遷移過了,按這個步驟操作:
? ? ? ? ?? ?-1 刪庫
? ? ? ? ? ? -2 刪遷移文件(所有你寫的app都刪)
? ? ? ? ? ? -3 刪除源碼中 auth和admin的遷移文件---》寫在djagno重裝

緩存

# 概念:緩存又稱頁面靜態化,?django 默認就支持緩存
# 原由:本身數據在數據庫中,如果訪問量較大,每次都需要去數據庫查詢,影響效率。

????????可以對數據做緩存,以后先從緩存中取數據

????????如果取到:直接返回,不需要查數據庫

????????如果取不到:再查數據庫,查完放到緩存中

# 緩存到的位置:? ? ? ? ? ?

? ? ? ? ? ? 內存緩存(演示)
? ??????????文件緩存?
? ? ????????數據庫緩存
?? ?????????redis緩存(后期會用)? ??
# 默認情況,緩存到內存中

CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',}
}

# 緩存到文件中

CACHES = {'default': {'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', #指定緩存使用的引擎'LOCATION': 'D:\pythonproject\huancun_file', ? ? ? ?#指定緩存的路徑'OPTIONS':{'MAX_ENTRIES': 300, ? ? ? ? ? ?# 最大緩存記錄的數量(默認300)'CULL_FREQUENCY': 3, ? ? ? ? ? # 緩存到達最大個數之后,剔除緩存個數的比例,即:1/CULL_FREQUENCY(默認3)}} ??}

# 緩存的具體使用:三種粒度
?? ?1 全站緩存:只需要置兩個中間件即可? ? ? ??
? ? 2 視圖緩存
? ? 3 局部緩存:在頁面某個位置緩存? ??
#? 全站緩存,使用方式-如下-只需要配置中間件即可

MIDDLEWARE = ['django.middleware.cache.UpdateCacheMiddleware',...'django.middleware.cache.FetchFromCacheMiddleware'
]

# 視圖緩存

from django.views.decorators.cache import cache_page
@cache_page(timeout=10)
def demo09(request):print('來了老弟')book_list = Book.objects.all()return render(request, 'books.html', {'books': book_list})

# 局部緩存

{% load cache %}
{% cache 10 'name' %}
可以能有很多代碼
{% endcache %}

項目開發流程

項目立項——公司高層定的
需求調研和分析-——市場人員,技術人員
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?需求文檔 說明? ?
開發部門開會——確定項目架構,技術選型,數據庫設計
ui,ud團隊(產品經理)——原型圖---切圖--交給前端
分任務開發:
?? ?????????-前端
? ????????? -后端:對著原型圖--》設計--》設計數據庫,設計功能? ??
前后端聯調
提交版本——測試
發布上線

BBS項目功能

1、注冊功能:校驗
? ????????????????ajax注冊
? ? ??????????????頭像顯示和上傳
2、登錄
3、首頁文章顯示(分頁---》自己加上)
4、個人站點:顯示這個人寫的所有文章
? ? ??????????????側邊欄有分類,標簽,隨筆檔案
5、文章詳情
6、點贊,點踩
7、評論:根評論
? ? ???????子評論
8、后臺管理:查看所有文章
? ????????????????刪除文章
? ? ??????????????新增文章:xss攻擊去除

設計數據庫

1 用戶表 UserInfo--->擴寫auth的user表
2 博客表 Blog--->跟用戶表做一對一關聯
3 文章表 Article
4 文章分類表 ?Category
5 標簽表 ?Tag
6 點贊點踩表 ?UpAndDown
7 評論表 ?Commit

# 關聯關系:
????????用戶和博客 :? 一對一
????????博客和文章: 一對多? 一個博客下,有很多文章,關聯字段寫在文章表中
????????博客和分類: 一對多? 一個博客下,創建多個分類,關聯字段寫在分類表中
????????博客和標簽:? ? 一對多? 一個博客下,創建多個標簽,關聯字段寫在標簽表中

????????文章和分類: 一對多? ?一個文章只能屬于一個分類,一個分類下有很多文章
????????文章和標簽:多對多 ? ?一個文章可以有多個標簽,一個標簽下可以有多個文章

????????點贊和用戶:一對多 ?一個用戶可以點很多贊,一個用戶可以點很多贊
????????評論和用戶:一對多 ?一個用戶可以評論多個,評論的一條記錄只屬于一個用戶

????????文章和點贊:一對多 一篇文章,可以被點多次,但是一個點贊的記錄只對應一篇文章
????????文章和評論:一對多 一篇文章,可以被評論多次,但一個評論的記錄只對應一篇文章

setting文件配置

# 解釋器環境中有 djagno ==3.2.20
# 1 國際化:

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

# 2 配置了static

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

# 3 配置了media

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

# 4 配置了鏈接mysql

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'blog','USER': 'root','PASSWORD': '1234','HOST': '127.0.0.1','PORT': 3306}
}

創建項目遷移表

1 用戶表 UserInfo---》擴寫auth的user表
2 博客表 Blog---》跟用戶表做一對一關聯
3 文章表 Article
4 文章分類表 ?Category
5 標簽表 ?Tag
6 點贊點踩表 ?UpAndDown
7 評論表 ?Commit

models.py
from django.db import models
from django.contrib.auth.models import AbstractUserclass UserInfo(AbstractUser):# 擴寫字段---》手機號,頭像,phone = models.CharField(max_length=32)# /media/avatar/default.png# 必須安裝pillow 才能使用 ImageFieldavatar = models.ImageField(upload_to='avatar', default='avatar/default.png')blog = models.OneToOneField(to='Blog', on_delete=models.CASCADE, null=True)class Meta:verbose_name_plural = '用戶表'  # 給其他人看,知道這是用戶表def __str__(self):return self.usernameclass Blog(models.Model):# 博客標題site_title = models.CharField(max_length=32)# 博客副標題site_name = models.CharField(max_length=32)# 博客樣式# 每個人樣式不同(文件地址)site_style = models.CharField(max_length=32)class Meta:verbose_name_plural = '博客表'def __str__(self):# 會報錯try:return self.userinfo.username + '---' + self.site_titleexcept Exception as e:return self.site_titleclass Tag(models.Model):name = models.CharField(max_length=32)blog = models.ForeignKey(to=Blog, on_delete=models.SET_NULL, null=True)class Meta:verbose_name_plural = '標簽表'def __str__(self):return self.nameclass Category(models.Model):name = models.CharField(max_length=32)blog = models.ForeignKey(to=Blog, on_delete=models.SET_NULL, null=True)class Meta:verbose_name_plural = '分類表'def __str__(self):return self.nameclass Article(models.Model):title = models.CharField(max_length=128)# 文章摘要desc = models.CharField(max_length=256, verbose_name='文章摘要')# 文章詳情  大文本content = models.TextField()create_time = models.DateTimeField(auto_now_add=True)# 關聯字段# 標簽和分類category = models.ForeignKey(to=Category, on_delete=models.SET_NULL, null=True)# 多對多,手動創建中間表tag = models.ManyToManyField(to=Tag, through='ArticleToTag', through_fields=('article', 'tag'))# 博客blog = models.ForeignKey(to=Blog, on_delete=models.CASCADE)class Meta:verbose_name_plural = '文章表'def __str__(self):return self.titleclass ArticleToTag(models.Model):article = models.ForeignKey(to=Article, on_delete=models.CASCADE)tag = models.ForeignKey(to=Tag, on_delete=models.CASCADE)class UpAndDown(models.Model):user = models.ForeignKey(to=UserInfo, on_delete=models.CASCADE)article = models.ForeignKey(to=Article, on_delete=models.CASCADE)is_up = models.BooleanField(default=True)create_time = models.DateTimeField(auto_now_add=True)class Meta:verbose_name_plural = '點贊點踩'def __str__(self):return self.is_upclass Commit(models.Model):user = models.ForeignKey(to=UserInfo, on_delete=models.CASCADE)article = models.ForeignKey(to=Article, on_delete=models.CASCADE)content = models.CharField(max_length=256)create_time = models.DateTimeField(auto_now_add=True)# 自關聯,評論層級---》子評論   一定要寫null=Trueparent_id = models.ForeignKey(to='self', on_delete=models.CASCADE, null=True)class Meta:verbose_name_plural = '評論表'def __str__(self):return self.content

# 自關聯:

注冊功能案例

完成注冊功能---高級一些使用form
?? ?-頭像實時顯示
? ? -注冊失敗錯誤信息展示
? ? -注冊成功跳轉到登錄頁面

測試三種緩存粒度

全站緩存:

1、緩存在文件中:

setting.py
MIDDLEWARE = [      # 全棧,兩個中間鍵'django.middleware.cache.UpdateCacheMiddleware','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','app01.middle_key.MyMiddlew','django.middleware.cache.FetchFromCacheMiddleware'
]CACHES = {     # 存在文件中'default': {'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', #指定緩存使用的引擎'LOCATION': 'D:\pythonproject\huancun_file',        #指定緩存的路徑'OPTIONS':{'MAX_ENTRIES': 300,            # 最大緩存記錄的數量(默認300)'CULL_FREQUENCY': 3,           # 緩存到達最大個數之后,剔除緩存個數的比例,即:1/CULL_FREQUENCY(默認3)}}
}
views.py
# 全站緩存
from .models import  Data
def demo09(request):print('你好,周佳佳')data=Data.objects.all()return render(request,'shuju.html',{'data':data})
shuju.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="row"><div class="col-md-6 col-md-offset-3"><div class="bd-example"><table class="table table-striped"><thead><tr><th>id</th><th>書名</th><th>價格</th><th>出版社</th></tr></thead><tbody>{% for book in data %}<tr><th scope="row">{{ book.id }}</th><td>{{ book.username }}</td><td>{{ book.email }}</td><td>{{ book.password }}</td></tr>{% endfor %}</tbody></table></div></div>
</div>
</body>
</html>

2、緩存在內存中,看不見

CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',}
}

視圖緩存:

views.py
from .models import  Data
from django.views.decorators.cache import cache_page
@cache_page(timeout=10)
def demo09(request):print('你好,周佳佳')data=Data.objects.all()return render(request,'shuju.html',{'data':data})

局部緩存:

html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"></script>
</head>
{% load cache %}
<body>
<div class="row"><div class="col-md-6 col-md-offset-3"><div class="bd-example"><table class="table table-striped"><thead><tr><th>id</th><th>書名</th><th>價格</th><th>出版社</th></tr></thead><tbody>{% for book in data %}<tr><th scope="row">{{ book.id }}</th><td>{{ book.username }}</td><td>{{ book.email }}</td><td>{{ book.password }}</td></tr>{% endfor %}</tbody></table>{% cache 1 'name' %}<hr>{{ time }}{% endcache %}</div></div>
</div>
</body>
</html>
views.py
# 視圖緩存
from .models import  Data
import datetime
def demo09(request):print('你好,周佳佳')data=Data.objects.all()return render(request,'shuju.html',{'data':data,'time':str(datetime.datetime.now())})

bootstrap5 的使用

使用bootstrap5 美化注冊頁面

下載 -Bootstrap中文網

# CSS引入<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"></script>

今日思維導圖:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211960.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211960.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211960.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 中連接 SQL 數據庫

在 Java 中&#xff0c;連接 SQL 數據庫通常使用 JDBC&#xff08;Java Database Connectivity&#xff09;。以下是使用 IntelliJ IDEA 連接 SQL 數據庫的一般步驟&#xff1a; 1. 引入 JDBC 驅動&#xff1a;首先&#xff0c;你需要下載并引入與你所使用的數據庫相對應的 JD…

Linux 導入、導出 MySQL 數據庫命令

一、導出數據庫 1、導出完整數據&#xff1a;表結構數據 mysqldump -u用戶名 -p 數據庫名 > 數據庫名.sql 舉例&#xff1a;以下命令可以導出 abc 數據庫的數據和表結構 /usr/local/mysql/bin/mysqldump -uroot -p abc > abc.sql2、只導出表結構 mysqldump -u用戶名 -p…

用23種設計模式打造一個cocos creator的游戲框架----(十二)狀態模式

1、模式標準 模式名稱&#xff1a;狀態模式 模式分類&#xff1a;行為型 模式意圖&#xff1a;允許一個對象在其內部狀態改變時改變它的行為。對象看起來似乎修改了它的類。 結構圖&#xff1a; 適用于&#xff1a; 1、一個對象的行為決定于它的狀態&#xff0c;并且它必須…

【C語言】字符串函數strcpystrcatstrcmpstrstr的使?和模擬實現

&#x1f308;write in front :&#x1f50d;個人主頁 &#xff1a; 啊森要自信的主頁 ??真正相信奇跡的家伙&#xff0c;本身和奇跡一樣了不起啊&#xff01; 歡迎大家關注&#x1f50d;點贊&#x1f44d;收藏??留言&#x1f4dd;>希望看完我的文章對你有小小的幫助&am…

OCSP檢查數字證書狀態詳解

文章目錄 1. OCSP 的基本原理2. OCSP 的工作流程3. OCSP 的優勢和不足4. OCSP Stapling5. OCSP 配置 OCSP&#xff08;Online Certificate Status Protocol&#xff09;是一種用于檢查數字證書狀態的協議。它提供了一種實時查詢證書狀態的方式&#xff0c;以確定證書是否被吊銷…

prototype、__proto__、constructor、原型、原型鏈

結論&#xff1a; __proto__和constructor屬性是對象所獨有的&#xff1b; prototype屬性是函數所獨有的&#xff0c;由于函數也是一種對象&#xff0c;所以函數也擁有__proto__和constructor屬性&#xff1b;__proto__屬性的作用就是當訪問一個對象的屬性時&#xff0c;如果該…

C++ 多態性(Polymorphism)和 虛函數(Virtual Functions)

在 C 中&#xff0c;多態性&#xff08;Polymorphism&#xff09;是面向對象編程的一個重要概念&#xff0c;它允許通過基類指針或引用來調用派生類對象的特定方法。虛函數&#xff08;Virtual Functions&#xff09;是實現多態性的一種機制&#xff0c;通過在基類中聲明虛函數…

InputStream和OutputStream速通

InputStream和OutputStream 輸入流&#xff08;InputStream&#xff09;&#xff1a; InputStream是抽象類&#xff0c;用于從各種數據源&#xff08;如文件、網絡連接、內存等&#xff09;讀取字節流。常見的子類包括FileInputStream、ByteArrayInputStream和SocketInputStrea…

電源小白入門學習1——電源系統架構和相關指標

電源小白入門學習1——電源系統架構和相關指標 電源系統架構電源系統的指標及測量方法電源的效率電源的靜態電流輸出電壓調整率紋波測量的注意事項動態負載測試 在開始本期內容之氣&#xff0c;我先簡單介紹一下我們電源小白學習系列內容&#xff1a;首先我是一個嵌入式小白&am…

【InsCode】新的代碼管理工具inscode教程它和Git以及SVN的區別

InsCode 實踐分享 InsCodeGitSVN類型代碼管理工具分布式版本控制系統集中式版本控制系統分支管理支持強大的分支管理功能&#xff0c;包括創建、合并和刪除分支支持分支管理&#xff0c;操作簡單快捷支持分支管理&#xff0c;但操作相對復雜代碼托管提供代碼托管功能&#xff…

在VSCode中運行Python腳本文件時如何傳參

以下實驗所處的操作系統環境說明&#xff1a; OS版本MacOSMonterey 12.1VSCodeOctober 2023 (version 1.84.2) 一、背景 在 VSCode 中寫好 Python 腳本后&#xff0c;如果要運行起來&#xff0c;可以怎么做呢&#xff1f; 一般有以下幾種方式&#xff1a; 1、直接在 VSCode…

sentinel整合nacos配置中心持久化

在網上找了很多的資料&#xff0c;發現sentinel整合nacos持久化的博文和視頻大多數都只有改造限流部分的教程&#xff0c;并且都需要修改前端&#xff0c;略顯麻煩&#xff0c;至于剩下的熔斷、熱點流控、授權的更是沒有相關的改造教程&#xff0c;最后在知乎的看到一篇文章后讓…

百科詞條可以刪除嗎?如何刪除自己的百度百科?

近日&#xff0c;小馬識途營銷顧問接到不少客戶刪除自己百科詞條的咨詢&#xff0c;有不少人自己并沒有去建立百科詞條&#xff0c;但是網上已經有了&#xff0c;有的信息不正確&#xff0c;甚至有的信息是負能量的&#xff0c;對當事人自己造成一定的困擾&#xff0c;所以尋求…

pytorch學習4-簡易卷積實現

系列文章目錄 pytorch學習1-數據加載以及Tensorboard可視化工具pytorch學習2-Transforms主要方法使用pytorch學習3-torchvisin和Dataloader的使用pytorch學習4-簡易卷積實現pytorch學習5-最大池化層的使用pytorch學習6-非線性變換&#xff08;ReLU和sigmoid&#xff09;pytorc…

【鴻蒙學習網絡】

鴻蒙技術學習相關學習資料 官方文檔&#xff1a;華為官方提供了鴻蒙開發者文檔&#xff0c;包括開發指南、API參考和示例代碼等。您可以訪問華為開發者中心網站&#xff08;https://developer.harmonyos.com/&#xff09;獲取最新的官方文檔和教程。在 線 課 程 &#xff1a; …

PbootCMS 前臺RCE漏洞復現

0x01 產品簡介 PbootCMS是全新內核且永久開源免費的PHP企業網站開發建設管理系統,是一套高效、簡潔、 強悍的可免費商用的PHP CMS源碼,能夠滿足各類企業網站開發建設的需要 0x02 漏洞概述 PbootCMS v<=3.1.6版本中存在模板注入,攻擊者可構造特定的鏈接利用該漏洞,執行…

線程及實現方式

一、線程 線程是一個基本的CPU執行單元&#xff0c;也是程序執行流的最小單位。引入線程之后&#xff0c;不僅是進程之間可以并發&#xff0c;進程內的各線程之間也可以并發&#xff0c;從而進一步提升了系統的并發度&#xff0c;使得一個進程內也可以并發處理各種任務&#x…

c語言的內存函數

memcpy函數 1.調用形式void*memcpy(void*p1,void*p2,int n)&#xff0c;表示從第二個位置復制n個字節到第一個位置&#xff0c;而指針類型為void的原因是他可以復制整型字符型甚至指針結構體類型的數據 2.在遇到\0的時候不會停下來&#xff0c;因為函數執行拷貝靠字節數&…

【Hive】——安裝部署

1 MetaData&#xff08;元數據&#xff09; 2 MetaStore &#xff08;元數據服務&#xff09; 3 MetaStore配置方式 3.1 內嵌模式 3.2 本地模式 3.3 遠程模式 4 安裝前準備 <!-- 整合hive --><property><name>hadoop.proxyuser.root.hosts</name><v…

Java+Swing: 主界面組件布局 整理9

說明&#xff1a;這篇博客是在上一篇的基礎上的&#xff0c;因為上一篇已經將界面的框架搭好了&#xff0c;這篇主要是將里面的組件完善。 分為三個部分&#xff0c;北邊的組件、中間的組件、南邊的組件 // 放置北邊的組件layoutNorth(contentPane);// 放置中間的 Jtablelayou…