【Python】Django 中的算法應用與實現

Django 中的算法應用與實現

在 Django 開發中,算法的應用可以極大地擴展 Web 應用的功能和性能。從簡單的數據處理到復雜的機器學習模型,Django 都可以作為一個強大的后端框架來支持這些算法的實現。本文將介紹幾種常見的算法及其在 Django 中的使用方法。

1\.協同過濾算法

1.1 算法簡介

協同過濾是一種常用的推薦系統算法,通過分析用戶的行為數據(如評分、瀏覽歷史等),為用戶推薦他們可能感興趣的內容。常見的協同過濾算法包括基于用戶的協同過濾(User-based CF)和基于物品的協同過濾(Item-based CF)。

1.2 Django 中的實現

以下是一個簡單的基于用戶的協同過濾算法實現:

數據庫模型

from django.db import modelsclass User(models.Model):name = models.CharField(max_length=100)class Item(models.Model):name = models.CharField(max_length=100)class Rating(models.Model):user = models.ForeignKey(User, on_delete=models.CASCADE)item = models.ForeignKey(Item, on_delete=models.CASCADE)rating = models.FloatField()

協同過濾算法

import numpy as npfrom django.db.models import Avgdef user_based_cf(user_id, num_recommendations=5):# 獲取所有用戶的評分數據ratings = Rating.objects.all().values('user_id', 'item_id', 'rating')ratings = list(ratings)# 構建用戶-物品評分矩陣user_item_matrix = {}for rating in ratings:user_id = rating['user_id']item_id = rating['item_id']score = rating['rating']if user_id not in user_item_matrix:user_item_matrix[user_id] = {}user_item_matrix[user_id][item_id] = score# 計算用戶相似度def cosine_similarity(user1, user2):common_items = set(user_item_matrix[user1].keys()) & set(user_item_matrix[user2].keys())if not common_items:return 0vec1 = [user_item_matrix[user1][item] for item in common_items]vec2 = [user_item_matrix[user2][item] for item in common_items]return np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))# 找到與目標用戶最相似的用戶target_user_ratings = user_item_matrix[user_id]similarities = []for other_user in user_item_matrix:if other_user != user_id:similarity = cosine_similarity(user_id, other_user)similarities.append((other_user, similarity))similarities.sort(key=lambda x: x[1], reverse=True)similar_users = [user for user, sim in similarities[:num_recommendations]]# 生成推薦recommendations = {}for user in similar_users:for item, rating in user_item_matrix[user].items():if item not in target_user_ratings:if item not in recommendations:recommendations[item] = []recommendations[item].append(rating)final_recommendations = []for item, ratings in recommendations.items():avg_rating = sum(ratings) / len(ratings)final_recommendations.append((item, avg_rating))final_recommendations.sort(key=lambda x: x[1], reverse=True)return final_recommendations[:num_recommendations]

1.3 使用方法

在視圖中調用`user_based_cf`函數,傳入用戶 ID 和推薦數量,即可獲取推薦結果:
?

from django.shortcuts import renderfrom .models import Itemdef recommend_items(request, user_id):recommendations = user_based_cf(user_id)recommended_items = [Item.objects.get(id=item_id) for item_id, _ in recommendations]return render(request, 'recommendations.html', {'items': recommended_items})

2\.KNN 算法

2.1 算法簡介

KNN(K-Nearest Neighbors)是一種簡單而有效的分類和回歸算法。它通過計算數據點之間的距離,找到最近的 K 個鄰居,并根據這些鄰居的標簽來預測目標點的標簽。

2.2 Django 中的實現

以下是一個基于 KNN 的分類器實現:

數據庫模型
?

from django.db import modelsclass DataPoint(models.Model):feature1 = models.FloatField()feature2 = models.FloatField()label = models.CharField(max_length=50)

KNN 分類器

import numpy as npfrom django.db.models import Qdef knn_classifier(new_point, k=3):# 獲取所有數據點data_points = DataPoint.objects.all().values('feature1', 'feature2', 'label')data_points = list(data_points)# 計算歐幾里得距離distances = []for point in data_points:distance = np.sqrt((point['feature1'] - new_point[0])**2 + (point['feature2'] - new_point[1])**2)distances.append((point, distance))# 找到最近的 K 個鄰居distances.sort(key=lambda x: x[1])neighbors = distances[:k]# 統計鄰居的標簽labels = [neighbor[0]['label'] for neighbor in neighbors]most_common_label = max(set(labels), key=labels.count)return most_common_label

2.3 使用方法

在視圖中調用`knn_classifier`函數,傳入新的數據點和鄰居數量,即可獲取分類結果:

from django.http import JsonResponsedef classify_point(request):feature1 = float(request.GET.get('feature1'))feature2 = float(request.GET.get('feature2'))label = knn_classifier((feature1, feature2))return JsonResponse({'label': label})

3\.機器學習模型集成

3.1 算法簡介

Django 可以與機器學習庫(如 scikit-learn、TensorFlow 等)結合,實現復雜的機器學習模型。這些模型可以用于分類、回歸、預測等多種任務。

3.2 Django 中的實現

以下是一個使用 scikit-learn 預測房價的示例:

數據庫模型
?

from django.db import modelsclass House(models.Model):area = models.FloatField()bedrooms = models.IntegerField()price = models.FloatField()

加載和使用模型

import pickleimport osfrom django.conf import settingsfrom sklearn.linear_model import LinearRegression# 加載模型def load_model():model_path = os.path.join(settings.BASE_DIR, 'models', 'house_price_model.pkl')with open(model_path, 'rb') as file:model = pickle.load(file)return model# 預測房價def predict_price(area, bedrooms):model = load_model()features = [[area, bedrooms]]predicted_price = model.predict(features)[0]return predicted_price

3.3 使用方法

在視圖中調用`predict_price`函數,傳入房屋特征,即可獲取預測結果:

from django.http import JsonResponsedef predict_house_price(request):area = float(request.GET.get('area'))bedrooms = int(request.GET.get('bedrooms'))price = predict_price(area, bedrooms)return JsonResponse({'predicted_price': price})

4\.數據處理與分析

4.1 算法簡介

Django 可以結合 Pandas 等數據分析庫,實現數據的導入、處理和可視化。

4.2 Django 中的實現

以下是一個從 Excel 文件中導入數據并進行處理的示例:

數據庫模型

from django.db import modelsclass SalesData(models.Model):category = models.CharField(max_length=100)value = models.FloatField()

數據導入與處理

import pandas as pdfrom django.http import JsonResponsefrom django.views.decorators.csrf import csrf_exempt@csrf_exemptdef import_excel(request):if request.method == 'POST':excel_file = request.FILES['file']df = pd.read_excel(excel_file, engine='openpyxl')data = df.to_dict(orient='records')for item in data:SalesData.objects.create(category=item['Category'], value=item['Value'])return JsonResponse({'status': 'success'})return JsonResponse({'status': 'error'})

5\.排序算法

5.1 算法簡介

排序算法是計算機科學中最基礎的算法之一,用于將一組數據按照特定的順序排列。常見的排序算法包括冒泡排序、快速排序、歸并排序等。雖然 Python 內置了高效的排序方法(如`sorted()`和`.sort()`),但在某些場景下,我們可能需要自定義排序邏輯。

5.2 Django 中的實現

以下是一個在 Django 中實現快速排序算法的示例,用于對數據庫查詢結果進行排序。

數據庫模型

from django.db import modelsclass Product(models.Model):name = models.CharField(max_length=100)price = models.FloatField()

快速排序算法

def quick_sort(arr, key):if len(arr) <= 1:return arrpivot = arr[len(arr) // 2]left = [x for x in arr if key(x) < key(pivot)]middle = [x for x in arr if key(x) == key(pivot)]right = [x for x in arr if key(x) > key(pivot)]return quick_sort(left, key) + middle + quick_sort(right, key)

使用方法

在視圖中調用`quick_sort`函數,對查詢結果進行排序:
?

from django.shortcuts import renderdef sorted_products(request):products = Product.objects.all()sorted_products = quick_sort(list(products), key=lambda x: x.price)return render(request, 'products.html', {'products': sorted_products})

6\.搜索算法

6.1 算法簡介

搜索算法用于在數據集中查找特定的目標值。常見的搜索算法包括線性搜索和二分搜索。在 Django 中,我們通常使用數據庫查詢來實現搜索功能,但在某些情況下,手動實現搜索算法可以提供更靈活的解決方案。

6.2 Django 中的實現

以下是一個在 Django 中實現二分搜索算法的示例,用于在有序數據中查找目標值。

數據庫模型

from django.db import modelsclass Item(models.Model):name = models.CharField(max_length=100)value = models.IntegerField()

二分搜索算法

def binary_search(arr, target, key):low, high = 0, len(arr) - 1while low <= high:mid = (low + high) // 2if key(arr[mid]) == target:return midelif key(arr[mid]) < target:low = mid + 1else:high = mid - 1return -1

使用方法

在視圖中調用`binary_search`函數,對查詢結果進行搜索:

from django.shortcuts import renderdef search_item(request, target_value):items = Item.objects.all().order_by('value') ?# 確保數據有序index = binary_search(list(items), target_value, key=lambda x: x.value)if index != -1:found_item = items[index]return render(request, 'item_found.html', {'item': found_item})else:return render(request, 'item_not_found.html')

7\.緩存優化算法

7.1 算法簡介

緩存優化算法用于提高系統的性能,通過將頻繁訪問的數據存儲在內存中,減少對數據庫的查詢次數。常見的緩存策略包括最近最少使用(LRU)和最不經常使用(LFU)。

7.2 Django 中的實現

Django 提供了強大的緩存框架,支持多種緩存后端(如內存緩存、Redis 等)。以下是一個簡單的 LRU 緩存實現示例。

緩存工具類

from collections import OrderedDictclass LRUCache:def __init__(self, capacity: int):self.cache = OrderedDict()self.capacity = capacitydef get(self, key: int) -> int:if key not in self.cache:return -1self.cache.move_to_end(key)return self.cache[key]def put(self, key: int, value: int) -> None:if key in self.cache:self.cache.move_to_end(key)self.cache[key] = valueif len(self.cache) > self.capacity:self.cache.popitem(last=False)

使用方法

在視圖中使用 LRU 緩存來存儲頻繁訪問的數據:from django.shortcuts import renderfrom .cache import LRUCache# 初始化緩存cache = LRUCache(capacity=10)def get_expensive_data(request, key):if cache.get(key) == -1:# 模擬從數據庫中獲取數據data = expensive_query(key)cache.put(key, data)else:data = cache.get(key)return render(request, 'data.html', {'data': data})def expensive_query(key):# 模擬耗時查詢import timetime.sleep(2)return f"Data for key {key}"

8\.圖算法

8.1 算法簡介

圖算法用于處理圖結構數據,常見的圖算法包括深度優先搜索(DFS)、廣度優先搜索(BFS)和最短路徑算法(如 Dijkstra 算法)。在 Django 中,圖算法可以用于社交網絡分析、路徑規劃等場景。

8.2 Django 中的實現

以下是一個使用廣度優先搜索(BFS)算法實現的社交網絡好友推薦系統。

數據庫模型

from django.db import modelsclass User(models.Model):name = models.CharField(max_length=100)class Friendship(models.Model):user1 = models.ForeignKey(User, on_delete=models.CASCADE, related_name='friendships1')user2 = models.ForeignKey(User, on_delete=models.CASCADE, related_name='friendships2')

BFS 算法

from collections import dequedef bfs_recommendations(start_user, depth=2):visited = set()queue = deque([(start_user, 0)])recommendations = []while queue:current_user, current_depth = queue.popleft()if current_depth >= depth:breakvisited.add(current_user.id)friends = Friendship.objects.filter(user1=current_user).values_list('user2', flat=True)friends |= Friendship.objects.filter(user2=current_user).values_list('user1', flat=True)for friend_id in friends:friend = User.objects.get(id=friend_id)if friend.id not in visited:recommendations.append(friend)queue.append((friend, current_depth + 1))return recommendations

使用方法

在視圖中調用`bfs_recommendations`函數,為用戶推薦好友:

from django.shortcuts import renderdef recommend_friends(request, user_id):user = User.objects.get(id=user_id)recommendations = bfs_recommendations(user)return render(request, 'recommendations.html', {'recommendations': recommendations})

9\.動態規劃算法

9.1 算法簡介

動態規劃(Dynamic Programming,DP)是一種通過將復雜問題分解為更簡單的子問題來求解的算法。它通常用于優化問題,如背包問題、最短路徑問題等。

9.2 Django 中的實現

以下是一個經典的動態規劃問題——背包問題的實現。假設我們需要根據用戶的需求動態計算最優解。

數據庫模型

from django.db import modelsclass Item(models.Model):name = models.CharField(max_length=100)weight = models.IntegerField()value = models.IntegerField()

動態規劃算法
?

def knapsack(max_weight, items):n = len(items)dp = [[0 for _ in range(max_weight + 1)] for _ in range(n + 1)]for i in range(1, n + 1):for w in range(max_weight + 1):if items[i - 1].weight <= w:dp[i][w] = max(dp[i - 1][w], dp[i - 1][w - items[i - 1].weight] + items[i - 1].value)else:dp[i][w] = dp[i - 1][w]return dp[n][max_weight]

使用方法

在視圖中調用`knapsack`函數,傳入最大重量和物品列表:

from django.shortcuts import renderfrom .models import Itemdef calculate_knapsack(request, max_weight):items = Item.objects.all()max_value = knapsack(max_weight, list(items))return render(request, 'knapsack_result.html', {'max_value': max_value})

10\.分治算法

10.1 算法簡介

分治算法是一種將復雜問題分解為多個小問題分別求解,然后將結果合并的算法。常見的分治算法包括歸并排序、快速冪等。

10.2 Django 中的實現

以下是一個使用分治思想實現的快速冪算法,用于高效計算冪運算。

快速冪算法
?

def fast_power(base, exponent):if exponent == 0:return 1if exponent % 2 == 0:half_power = fast_power(base, exponent // 2)return half_power * half_powerelse:return base * fast_power(base, exponent - 1)

使用方法

在視圖中調用`fast_power`函數,傳入底數和指數:

from django.http import JsonResponsedef calculate_power(request, base, exponent):result = fast_power(base, exponent)return JsonResponse({'result': result})

11\.字符串處理算法

11.1 算法簡介

字符串處理算法用于高效處理字符串數據,常見的算法包括 KMP 算法(用于字符串匹配)、最長公共子序列(LCS)等。

11.2 Django 中的實現

以下是一個實現最長公共子序列(LCS)算法的示例,用于比較兩個字符串的相似性。

LCS 算法

def lcs(str1, str2):m, n = len(str1), len(str2)dp = [[0] * (n + 1) for _ in range(m + 1)]for i in range(1, m + 1):for j in range(1, n + 1):if str1[i - 1] == str2[j - 1]:dp[i][j] = dp[i - 1][j - 1] + 1else:dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])return dp[m][n]

使用方法

在視圖中調用`lcs`函數,傳入兩個字符串:

from django.http import JsonResponsedef compare_strings(request, str1, str2):length = lcs(str1, str2)return JsonResponse({'lcs_length': length})

12\.圖像處理算法

12.1 算法簡介

圖像處理算法用于對圖像數據進行分析和處理,常見的算法包括邊緣檢測、圖像分割、特征提取等。Django 可以結合 Python 的圖像處理庫(如 OpenCV、Pillow)實現這些功能。

12.2 Django 中的實現

以下是一個使用 OpenCV 實現的邊緣檢測算法的示例。

安裝依賴

pip install opencv-python

邊緣檢測算法

import cv2import numpy as npfrom django.core.files.base import ContentFilefrom django.core.files.storage import default_storagedef detect_edges(image_path):image = cv2.imread(image_path)gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)edges = cv2.Canny(gray, 100, 200)# 保存處理后的圖像_, buffer = cv2.imencode('.png', edges)processed_image = ContentFile(buffer.tobytes())file_name = default_storage.save("processed_image.png", processed_image)return default_storage.url(file_name)

使用方法

在視圖中調用`detect_edges`函數,傳入圖像路徑:

from django.http import JsonResponsefrom .utils import detect_edgesdef process_image(request):if request.method == 'POST':image_file = request.FILES['image']image_path = default_storage.save("original_image.png", image_file)image_url = default_storage.url(image_path)processed_image_url = detect_edges(image_url)return JsonResponse({'processed_image_url': processed_image_url})return JsonResponse({'error': 'Invalid request'}, status=400)

13\.機器學習模型的實時預測

13.1 算法簡介

Django 可以與機器學習庫(如 scikit-learn、TensorFlow、PyTorch)結合,實現模型的加載和實時預測。這在推薦系統、分類器、預測器等場景中非常有用。

13.2 Django 中的實現

以下是一個使用 scikit-learn 加載預訓練模型并進行實時預測的示例。

加載模型

import osimport picklefrom django.conf import settingsdef load_model():model_path = os.path.join(settings.BASE_DIR, 'models', 'classifier.pkl')with open(model_path, 'rb') as file:model = pickle.load(file)return model

實時預測

def predict(request):model = load_model()feature1 = float(request.GET.get('feature1'))feature2 = float(request.GET.get('feature2'))features = [[feature1, feature2]]prediction = model.predict(features)[0]return JsonResponse({'prediction': prediction})

14\.分布式任務處理

14.1 算法簡介

在大型系統中,某些任務可能需要分布式處理以提高效率。Django 可以結合 Celery 和 RabbitMQ 等工具實現異步任務處理。

14.2 Django 中的實現

以下是一個使用 Celery 實現異步任務的示例。

安裝依賴

pip install celery redis

Celery 配置

# settings.py

CELERY_BROKER_URL = 'redis://localhost:6379/0'CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'

定義任務

# tasks.py

from celery import shared_task@shared_taskdef long_running_task(data):# 模擬耗時任務import timetime.sleep(10)return f"Processed {data}"

調用任務

from django.http import JsonResponsefrom .tasks import long_running_taskdef trigger_task(request):task = long_running_task.delay("Sample Data")return JsonResponse({'task_id': task.id})

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

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

相關文章

旋轉編碼器原理與應用詳解:從結構到實戰 | 零基礎入門STM32第四十七步

主題內容教學目的/擴展視頻旋轉編碼器電路原理&#xff0c;跳線設置&#xff0c;結構分析。驅動程序與調用。熟悉電路和驅動程序。 師從洋桃電子&#xff0c;杜洋老師 &#x1f4d1;文章目錄 一、旋轉編碼器是什么&#xff1f;二、內部結構揭秘2.1 機械組件解剖2.2 核心部件說明…

如何禁止電腦中某個應用聯網

一、通過防火墻基礎設置&#xff08;快速操作&#xff09; 打開控制面板 在任務欄搜索框輸入“控制面板”并打開&#xff0c;將右上角“查看方式”切換為“大圖標”。 進入防火墻設置 點擊 Windows Defender防火墻 → 左側選擇 允許應用或功能通過Windows Defender防火墻。…

aws(學習筆記第三十二課) 深入使用cdk(API Gateway + event bridge)

文章目錄 aws(學習筆記第三十二課) 深入使用cdk學習內容&#xff1a;1. 使用aws API Gatewaylambda1.1. 以前的練習1.2. 使用cdk創建API Gateway lambda1.3. 確認cdk創建API Gateway lambda 2. 使用event bridge練習producer和consumer2.1. 代碼鏈接2.2. 開始練習2.3. 代碼部…

城市霓虹燈夜景拍照后期Lr調色教程,手機濾鏡PS+Lightroom預設下載!

調色教程 在城市霓虹燈夜景拍攝中&#xff0c;由于現場光線復雜等因素&#xff0c;照片可能無法完全呈現出當時的視覺感受。通過 Lr 調色&#xff0c;可以彌補拍攝時的不足。例如&#xff0c;運用基本調整面板中的曝光、對比度、陰影等工具&#xff0c;可以處理出畫面的整體明暗…

自然語言處理:文本分類

介紹 大家好&#xff0c;我這個熱衷于分享知識的博主又來啦&#xff01;之前我們一起深入探討了自然語言處理領域中非常重要的兩個方法&#xff1a;樸素貝葉斯和邏輯斯諦回歸。在探索的過程中&#xff0c;我們剖析了樸素貝葉斯如何基于概率原理和特征條件獨立假設&#xff0c;…

PDFMathTranslate安裝使用

PDF全文翻譯&#xff01;&#xff01;&#xff01;&#xff01; PDFMathTranslate安裝使用 它是個啥 PDFMathTranslate 可能是一個用于 PDF 文件的數學公式翻譯 工具。它可能包含以下功能&#xff1a; 提取 PDF 內的數學公式 將數學公式轉換成 LaTeX 代碼 翻譯數學公式的內…

【由技及道】量子構建交響曲:Jenkinsfile流水線的十一維編程藝術【人工智障AI2077的開發日志008】

摘要&#xff1a;當代碼提交觸發時空漣漪&#xff0c;當構建流水線穿越量子維度——歡迎來到自動化構建的終極形態。本文將揭示如何用Jenkinsfile編寫量子構建樂章&#xff0c;讓每次代碼提交都成為跨維度交響樂的音符。 動機&#xff1a;構建系統的量子哲學 “主人啊&#xff…

K8S高可用集群-小白學習之二進制部署(ansible+shell)

一.K8S高可用集群配置概述 序言:本文從一個小白的視角進行K8S的研究和部署,采用二進制的方式是為了更清楚了分解部署流程及了解這個集群是怎么運作的,加上ansible+shell是方便在這個過程中,遇到了問題,我們可以不斷的快速重復部署來測試和研究問題的所在點,本文的架構圖…

【自學筆記】R語言基礎知識點總覽-持續更新

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 R語言基礎知識點總覽1. R語言簡介2. R語言安裝與環境配置3. R語言基礎語法3.1 數據類型3.2 向量與矩陣3.3 數據框與列表 4. 控制結構4.1 條件語句4.2 循環結構 5. 函…

【編譯器】VSCODE搭建ESP32-C3

【編譯器】VSCODE搭建ESP32-C3 文章目錄 [TOC](文章目錄) 前言一、下載配置二、編譯三、燒錄四、參考資料總結 前言 使用工具&#xff1a; 1. 提示&#xff1a;以下是本篇文章正文內容&#xff0c;下面案例可供參考 一、下載配置 安裝IDF&#xff0c;打開例程 二、編譯 三…

通義千問本地配置并實現微調

通義千問本地配置并實現微調 最小Qwen模型大小942mb from modelscope import snapshot_download model_dir = snapshot_download(“qwen/Qwen2.5-0.5B”, cache_dir=“./models2.5”) Qwen2.5-0.5B:942MB from modelscope import snapshot_download model_dir = snapshot_d…

Magento2根據圖片文件包導入產品圖片

圖片包給的圖片文件是子產品的圖片&#xff0c;如下圖&#xff1a;A104255是主產品的sku <?php/*** 根據圖片包導入產品圖片&#xff0c;包含子產品和主產品* 子產品是作為主圖&#xff0c;主產品是作為附加圖片*/use Magento\Framework\App\Bootstrap;include(../app/boot…

力扣146 - LRU緩存

視頻講解 哈希 雙向鏈表 為什么要用雙向鏈表&#xff1f; 快速刪除節點&#xff08;O(1&#xff09;&#xff09; 如果是單鏈表的話&#xff0c;刪除一個節點時&#xff0c;需要從頭遍歷&#xff0c;找到前驅節點&#xff0c;才能修改 prev->next&#xff0c;導致 O(n)…

考研408

是否需要考研&#xff1f; 考研前期準備 目標院校 每年9月10月才會公布 考試時長3小時 數據結構 1.時間復雜度選擇題計算 2.順序表鏈表特點;指針、結構體語法&#xff0c;鏈表結點定義&#xff0c;鏈表頭結點與頭指針,常見的五種鏈 表&#xff0c;鏈表的插入刪除操作;順…

nodejs使用WebSocket實現聊天效果

在nodejs中使用WebSocket實現聊天效果&#xff08;簡易實現&#xff09; 安裝 npm i ws 實現 創建 server.js /*** 創建一個 WebSocket 服務器&#xff0c;監聽指定端口&#xff0c;并處理客戶端連接和消息。** param {Object} WebSocket - 引入的 WebSocket 模塊&#xff0c…

Web網頁制作(靜態網頁):千年之戀

一、是用的PyCharm來寫的代碼 二、代碼中所用到的知識點&#xff08;無 js&#xff09; 這段HTML代碼展示了一個簡單的注冊頁面&#xff0c;包含了多個HTML元素和CSS樣式的應用。 這段HTML代碼展示了一個典型的注冊頁面&#xff0c;包含了常見的HTML元素和表單控件。通過CSS樣…

操作系統知識點23

1.實時操作系統的主要設計目標&#xff1a;在嚴格時間氛圍內對外部請求做出反應。 2.當用戶程序正在處理器上運行時&#xff0c;若此刻取到了一條特權指令&#xff0c;則處理器將停止執行該指令&#xff0c;并產生一個“非法操作”的事件 3.某網絡監控系統中。多個被授權的用…

CSS—網格布局Grid

網格布局grid 提供了帶有行和列的基于網格的布局系統&#xff0c;無需使用浮動和定位。 當 HTML 元素的 display 屬性設置為 grid 或 inline-grid 時&#xff0c;它就會成為網格容器。 更多布局模式可以參考之前的博客&#xff1a; ??????CSS—flex布局、過渡transit…

如何將本地已有的倉庫上傳到gitee (使用UGit)

1、登錄Gitee。 2、點擊個人頭像旁邊的加號&#xff0c;選擇新建倉庫&#xff1a; 3、填寫倉庫相關信息 4、復制Gitee倉庫的地址 5、綁定我們的本地倉庫與遠程倉庫 6、將本地倉庫發布&#xff08;推送&#xff09;到遠程倉庫&#xff1a; 注意到此處報錯&#xff0c;有關于…

【JAVA面試題】Spring、Spring MVC、Spring Boot、Spring Cloud的區別與聯系

在Java生態中&#xff0c;Spring框架及其衍生技術&#xff08;如Spring MVC、Spring Boot、Spring Cloud&#xff09;是開發企業級應用的核心工具。它們在功能、定位和使用場景上各有側重&#xff0c;但又緊密聯系。本文將詳細解析它們的區別與聯系&#xff0c;幫助你在面試中更…