当前位置: 首页 > article >正文

Python Django完整教程与代码示例

边写代码零食不停口 盼盼麦香鸡味块 、卡乐比(Calbee)薯条三兄弟 独立小包、好时kisses多口味巧克力糖、老金磨方【黑金系列】黑芝麻丸

边写代码边贴面膜 事业美丽两不误 DR. YS 野森博士+【AOUFSE/澳芙雪特证】377专研美白淡斑面膜组合 优惠劵

别光顾写代码更要多喝茶水,提神有营养 六安瓜片茶叶茶香二级200g 2025年新茶雨前盒装自己喝

让AI成为我们的得力助手:《用Cursor玩转AI辅助编程——不写代码也能做软件开发》


Python Django 简介

Django 是一个基于 Python 的高级 Web 开发框架,遵循 “MTV”(模型-模板-视图)设计模式(类似于 MVC)。它以 高效、安全、可扩展 著称,帮助开发者快速构建高质量的 Web 应用。


🚀 核心特点

  1. 开箱即用
    • 自带用户认证、后台管理、ORM、表单处理等模块。
    • 无需重复造轮子,大幅提升开发效率。
  2. 安全优先
    • 自动防御 SQL 注入、XSS、CSRF 等常见攻击。
  3. 高可扩展性
    • 支持从小型博客到百万级用户平台(如 Instagram、Pinterest)。
  4. DRY 原则
    • 遵循 Don’t Repeat Yourself,代码高度复用。

🧩 核心组件

组件作用
模型 (Model)用 Python 类定义数据结构,自动生成数据库表(支持 PostgreSQL/MySQL 等)。
视图 (View)处理业务逻辑,接收请求并返回响应(HTML/JSON 等)。
模板 (Template)用 HTML + Django 模板语法动态渲染页面。
路由 (URLconf)将 URL 映射到对应的视图函数。

⚙️ 工作流程

graph LR
A[用户请求] --> B(URL路由)
B --> C[视图处理]
C --> D{操作数据库?}
D -- 是 --> E[模型读写]
E --> F[返回数据]
D -- 否 --> G[直接响应]
F --> H[模板渲染]
H --> I[返回HTML]
G --> I

📦 Django 自带工具

  • Admin 后台:自动生成数据管理界面。
  • ORM 系统:用 Python 操作数据库,无需写 SQL。
  • 表单处理:验证用户输入并自动渲染表单。
  • 缓存机制:支持 Memcached、Redis 等提升性能。
  • 国际化:内置多语言支持。

Django 基础部分

1. 环境安装与项目创建
# 安装Django
pip install django# 创建项目
django-admin startproject myproject# 目录结构:
# myproject/
#   manage.py
#   myproject/
#       __init__.py
#       settings.py
#       urls.py
#       asgi.py
#       wsgi.py
2. 创建应用
python manage.py startapp myapp
3. 基础视图与URL配置

myapp/views.py:

from django.http import HttpResponsedef hello(request):# 简单视图函数return HttpResponse("Hello Django!")

myproject/urls.py:

from django.urls import path
from myapp import viewsurlpatterns = [path('hello/', views.hello),
]
4. 运行开发服务器
python manage.py runserver
# 访问 http://127.0.0.1:8000/hello/

Django 模型层

1. 定义模型

myapp/models.py:

from django.db import modelsclass Book(models.Model):# 字符字段,最大长度100title = models.CharField(max_length=100)# 作者字段,可为空author = models.CharField(max_length=50, null=True)# 出版日期pub_date = models.DateField()# 价格(带小数)price = models.DecimalField(max_digits=5, decimal_places=2)# 自动记录创建时间created_at = models.DateTimeField(auto_now_add=True)def __str__(self):return self.title
2. 激活模型

myproject/settings.py:

INSTALLED_APPS = [...'myapp.apps.MyappConfig',  # 添加应用
]
3. 数据库迁移
python manage.py makemigrations  # 创建迁移文件
python manage.py migrate         # 应用迁移
4. 数据库操作示例
# 创建记录
from myapp.models import Book
from datetime import datebook = Book.objects.create(title="Django for Beginners",author="William S. Vincent",pub_date=date(2023, 5, 15),price=29.99
)# 查询记录
books = Book.objects.filter(price__lt=30)  # 价格<30的书籍
recent_books = Book.objects.order_by('-pub_date')[:5]  # 最新5本书# 更新记录
book.price = 24.99
book.save()# 删除记录
book.delete()

Django 视图进阶

1. 类视图

myapp/views.py:

from django.views.generic import ListView, DetailView
from .models import Bookclass BookListView(ListView):model = Booktemplate_name = 'book_list.html'context_object_name = 'books'class BookDetailView(DetailView):model = Booktemplate_name = 'book_detail.html'pk_url_kwarg = 'book_id'  # URL中的参数名
2. URL配置

myapp/urls.py:

from django.urls import path
from .views import BookListView, BookDetailViewurlpatterns = [path('books/', BookListView.as_view(), name='book-list'),path('books/<int:book_id>/', BookDetailView.as_view(), name='book-detail'),
]

Django 模板系统

1. 模板配置

myproject/settings.py:

TEMPLATES = [{'DIRS': [BASE_DIR / 'templates'],  # 全局模板目录},
]
2. 基础模板 templates/base.html
<!DOCTYPE html>
<html>
<head><title>{% block title %}My Site{% endblock %}</title>
</head>
<body><nav>...</nav><div class="content">{% block content %}{% endblock %}</div>
</body>
</html>
3. 子模板 templates/book_list.html
{% extends "base.html" %}{% block title %}Book List{% endblock %}{% block content %}
<h1>Book List</h1>
<ul>{% for book in books %}<li><a href="{% url 'book-detail' book.id %}">{{ book.title }} - {{ book.author }}</a></li>{% empty %}<li>No books available</li>{% endfor %}
</ul>
{% endblock %}

Django 表单处理

1. 模型表单

myapp/forms.py:

from django import forms
from .models import Bookclass BookForm(forms.ModelForm):class Meta:model = Bookfields = ['title', 'author', 'pub_date', 'price']widgets = {'pub_date': forms.DateInput(attrs={'type': 'date'}),}
2. 表单视图

myapp/views.py:

from django.views.generic.edit import CreateView
from .forms import BookFormclass BookCreateView(CreateView):model = Bookform_class = BookFormtemplate_name = 'book_form.html'success_url = '/books/'  # 提交成功后重定向
3. 模板 templates/book_form.html
<form method="post">{% csrf_token %}{{ form.as_p }}<button type="submit">Save</button>
</form>

Django Admin 后台

1. 注册模型

myapp/admin.py:

from django.contrib import admin
from .models import Book@admin.register(Book)
class BookAdmin(admin.ModelAdmin):list_display = ('title', 'author', 'price', 'pub_date')list_filter = ('author', 'pub_date')search_fields = ('title', 'author')date_hierarchy = 'pub_date'
2. 创建管理员
python manage.py createsuperuser

Django 用户认证

1. 登录视图

myproject/urls.py:

from django.contrib.auth import views as auth_viewsurlpatterns = [path('login/', auth_views.LoginView.as_view(template_name='login.html'), name='login'),path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]
2. 登录模板 templates/login.html
<form method="post">{% csrf_token %}{{ form.as_p }}<button type="submit">Login</button>
</form>
3. 视图权限控制
from django.contrib.auth.mixins import LoginRequiredMixinclass SecretView(LoginRequiredMixin, TemplateView):template_name = 'secret.html'login_url = '/login/'  # 未登录重定向

Django REST Framework (DRF)

1. 安装与配置
pip install djangorestframework

settings.py:

INSTALLED_APPS = [...'rest_framework',
]
2. 序列化器

myapp/serializers.py:

from rest_framework import serializers
from .models import Bookclass BookSerializer(serializers.ModelSerializer):class Meta:model = Bookfields = '__all__'
3. API视图

myapp/views.py:

from rest_framework import generics
from .serializers import BookSerializerclass BookAPIList(generics.ListCreateAPIView):queryset = Book.objects.all()serializer_class = BookSerializerclass BookAPIDetail(generics.RetrieveUpdateDestroyAPIView):queryset = Book.objects.all()serializer_class = BookSerializer
4. API路由

myapp/urls.py:

from django.urls import path
from .views import BookAPIList, BookAPIDetailurlpatterns = [path('api/books/', BookAPIList.as_view()),path('api/books/<int:pk>/', BookAPIDetail.as_view()),
]

Django 中间件

1. 自定义中间件

myapp/middleware.py:

class SimpleMiddleware:def __init__(self, get_response):self.get_response = get_responsedef __call__(self, request):# 请求处理前print("Before view")response = self.get_response(request)# 响应返回前print("After view")return response
2. 注册中间件

settings.py:

MIDDLEWARE = [...'myapp.middleware.SimpleMiddleware',
]

Django 信号

1. 定义信号处理器

myapp/signals.py:

from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import Book@receiver(post_save, sender=Book)
def book_created(sender, instance, created, **kwargs):if created:print(f"New book created: {instance.title}")
2. 注册信号

myapp/apps.py:

from django.apps import AppConfigclass MyappConfig(AppConfig):default_auto_field = 'django.db.models.BigAutoField'name = 'myapp'def ready(self):import myapp.signals  # 导入信号处理器

Django 缓存

1. 视图缓存

views.py:

from django.views.decorators.cache import cache_page@cache_page(60 * 15)  # 缓存15分钟
def expensive_view(request):# 耗时操作return HttpResponse(...)
2. 模板片段缓存
{% load cache %}{% cache 500 sidebar %}<!-- 缓存500秒的侧边栏内容 -->...
{% endcache %}

Django 国际化和本地化

1. 配置多语言

settings.py:

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = TrueLANGUAGES = [('en', 'English'),('zh-hans', '简体中文'),
]
2. 标记翻译文本

views.py:

from django.utils.translation import gettext as _def greeting(request):message = _("Welcome to our site!")return HttpResponse(message)
3. 模板翻译
{% load i18n %}<h1>{% trans "Welcome to our website" %}</h1>
<p>{% blocktrans %}Today is {{ current_date }}{% endblocktrans %}</p>

Django 安全实践

1. CSRF 保护
<!-- 表单中必须包含 -->
{% csrf_token %}
2. XSS 防护
# 模板自动转义
{{ user_input }} # 标记安全内容
from django.utils.safestring import mark_safe
safe_html = mark_safe("<b>Safe content</b>")
3. Clickjacking 防护

settings.py:

SECURE_CONTENT_TYPE_NOSNIFF = True
X_FRAME_OPTIONS = 'DENY'
SECURE_BROWSER_XSS_FILTER = True

Django 部署配置

1. 生产环境设置

settings.py:

DEBUG = FalseALLOWED_HOSTS = ['example.com']DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql','NAME': 'mydatabase','USER': 'mydbuser','PASSWORD': 'mypassword','HOST': 'db.example.com','PORT': '5432',}
}# 静态文件配置
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATIC_URL = '/static/'
2. 收集静态文件
python manage.py collectstatic
3. WSGI 配置

wsgi.py:

import os
from django.core.wsgi import get_wsgi_applicationos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_wsgi_application()

Django 测试框架

1. 编写测试用例

tests.py:

from django.test import TestCase
from django.urls import reverse
from .models import Bookclass BookTests(TestCase):def setUp(self):self.book = Book.objects.create(title="Test Book",author="Test Author",price=19.99)def test_book_listing(self):self.assertEqual(f"{self.book.title}", "Test Book")self.assertEqual(f"{self.book.author}", "Test Author")def test_book_list_view(self):response = self.client.get(reverse('book-list'))self.assertEqual(response.status_code, 200)self.assertContains(response, "Test Book")
2. 运行测试
python manage.py test

Django 高级特性

1. 数据库事务
from django.db import transaction@transaction.atomic
def transfer_funds(sender, receiver, amount):sender.balance -= amountsender.save()# 如果此处出错,整个事务回滚receiver.balance += amountreceiver.save()
2. 自定义模板标签

templatetags/my_tags.py:

from django import templateregister = template.Library()@register.simple_tag
def current_time(format_string):from datetime import datetimereturn datetime.now().strftime(format_string)
3. 异步视图
from django.http import HttpResponse
from asgiref.sync import async_to_syncasync def async_view(request):# 异步操作示例await some_async_task()return HttpResponse("Async response")

Django 第三方包集成

1. Django Debug Toolbar
pip install django-debug-toolbar

settings.py:

INSTALLED_APPS = [# ..."debug_toolbar",
]MIDDLEWARE = [# ..."debug_toolbar.middleware.DebugToolbarMiddleware",
]INTERNAL_IPS = ["127.0.0.1"]
2. Django Celery
# tasks.py
from celery import shared_task@shared_task
def send_email_task(email):# 发送邮件逻辑pass# 调用任务
send_email_task.delay("user@example.com")

Django 性能优化

1. 查询优化
# 避免N+1查询问题
books = Book.objects.select_related('author').all()# 使用prefetch_related
authors = Author.objects.prefetch_related('books').all()
2. 数据库索引

models.py:

class Book(models.Model):title = models.CharField(max_length=100, db_index=True)author = models.ForeignKey(Author, on_delete=models.CASCADE)class Meta:indexes = [models.Index(fields=['price'], name='price_idx'),]
3. 分页处理

views.py:

from django.core.paginator import Paginatordef book_list(request):book_list = Book.objects.all()paginator = Paginator(book_list, 25)  # 每页25条page_number = request.GET.get('page')page_obj = paginator.get_page(page_number)return render(request, 'list.html', {'page_obj': page_obj})

Django 文件上传

1. 模型配置

models.py:

class Document(models.Model):title = models.CharField(max_length=100)file = models.FileField(upload_to='documents/')uploaded_at = models.DateTimeField(auto_now_add=True)
2. 表单处理

forms.py:

class DocumentForm(forms.ModelForm):class Meta:model = Documentfields = ['title', 'file']
3. 视图处理

views.py:

def upload_file(request):if request.method == 'POST':form = DocumentForm(request.POST, request.FILES)if form.is_valid():form.save()return redirect('success')else:form = DocumentForm()return render(request, 'upload.html', {'form': form})

Django 自定义管理命令

1. 创建命令

management/commands/import_books.py:

from django.core.management.base import BaseCommand
from myapp.models import Bookclass Command(BaseCommand):help = 'Import books from CSV'def add_arguments(self, parser):parser.add_argument('csv_file', type=str)def handle(self, *args, **options):import csvwith open(options['csv_file']) as f:reader = csv.DictReader(f)for row in reader:Book.objects.create(title=row['title'],author=row['author'],price=row['price'])self.stdout.write(self.style.SUCCESS('Successfully imported books'))
2. 运行命令
python manage.py import_books books.csv

✅ 为什么选择 Django?

  • 开发速度快:脚手架工具自动化项目初始化。
  • 社区强大:海量第三方包(Django Packages 官网超 5,000+ 插件)。
  • 文档完善:官方教程详细,适合新手到专家所有阶段。

💡 提示:Django 的 “约定优于配置” 理念减少了决策成本,让开发者聚焦业务逻辑。


📚 学习资源

  • 官方文档(最佳入门)
  • 《Django for Beginners》书籍
  • Django Girls 教程(免费实战指南)

掌握 Django 后,将能高效构建从简单博客到复杂企业级应用的全栈项目! 🚀


Python 图书推荐

书名出版社推荐
Python编程 从入门到实践 第3版(图灵出品)人民邮电出版社★★★★★
Python数据科学手册(第2版)(图灵出品)人民邮电出版社★★★★★
图形引擎开发入门:基于Python语言电子工业出版社★★★★★
科研论文配图绘制指南 基于Python(异步图书出品)人民邮电出版社★★★★★
Effective Python:编写好Python的90个有效方法(第2版 英文版)人民邮电出版社★★★★★
Python人工智能与机器学习(套装全5册)清华大学出版社★★★★★

JAVA 图书推荐

书名出版社推荐
Java核心技术 第12版:卷Ⅰ+卷Ⅱ机械工业出版社★★★★★
Java核心技术 第11版 套装共2册机械工业出版社★★★★★
Java语言程序设计基础篇+进阶篇 原书第12版 套装共2册机械工业出版社★★★★★
Java 11官方参考手册(第11版)清华大学出版社★★★★★
Offer来了:Java面试核心知识点精讲(第2版)(博文视点出品)电子工业出版社★★★★★

相关文章:

Python Django完整教程与代码示例

边写代码零食不停口 盼盼麦香鸡味块 、卡乐比&#xff08;Calbee&#xff09;薯条三兄弟 独立小包、好时kisses多口味巧克力糖、老金磨方【黑金系列】黑芝麻丸 边写代码边贴面膜 事业美丽两不误 DR. YS 野森博士【AOUFSE/澳芙雪特证】377专研美白淡斑面膜组合 优惠劵 别光顾写…...

Spring Boot,两种配置文件

Spring Boot 主要支持两种配置文件格式&#xff0c;它们允许你外部化应用程序的配置&#xff1a;.properties 文件和 .yml (或 .yaml) 文件。以下是关于这两种配置文件的关键知识点&#xff1a; 1. application.properties 文件 格式: 基于键值对的纯文本文件。 语法: keyvalu…...

OpenLayers 地图标注之图文标注

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图标注是将空间位置信息点与地图关联、通过图标、窗口等形式把相关信息展现到地图上。在WebGIS中地图标注是重要的功能之一&#xff0c;可以为用户提供…...

设计模式——简单工厂模式(创建型)

摘要 本文主要介绍了简单工厂模式&#xff0c;包括其定义、结构、实现方式、适用场景、实战示例以及思考。简单工厂模式是一种创建型设计模式&#xff0c;通过工厂类根据参数决定创建哪一种产品类的实例&#xff0c;封装了对象创建的细节&#xff0c;使客户端无需关心具体类的…...

qt ubuntu 20.04 交叉编译

一、交叉编译环境搭建 1.下载交叉编译工具链&#xff1a;https://developer.arm.com/downloads/-/gnu-a 可以根据自己需要下载对应版本&#xff0c;当前最新版本是10.3, 笔者使用10.3编译后的glibc.so版本太高&#xff08;glibc_2.3.3, glibc_2.3.4, glibc_2.3.5&#xff09;…...

java中cocurrent包常用的集合类操作

文章目录 前置ConcurrentHashMapCopyOnWriteArrayList/CopyOnWriteArraySet 前置 常规的集合类&#xff0c;比如 ArrayList&#xff0c;HashMap 当作为多线程下共享的变量时候&#xff0c;操作它们时会涉及线程安全的问题 ConcurrentHashMap 适合&#xff1a;需要频繁读写的…...

晶振频率稳定性:5G 基站与航天设备的核心竞争力

在当今科技飞速发展的时代&#xff0c;电子设备的性能和可靠性至关重要。晶振作为电子设备中的核心部件&#xff0c;为系统提供精确的时间和频率基准。晶振的频率稳定性直接影响着设备的整体性能&#xff0c;从日常生活中广泛使用的智能手机、智能穿戴设备&#xff0c;到对精度…...

基于python脚本进行Maxwell自动化仿真

本文为博主进行Maxwell自动化研究过程的学习记录&#xff0c;同时对Maxwell自动化脚本&#xff08;pythonIron&#xff09;实现方法进行分享。 文章目录 脚本使用方法脚本录制与查看常用脚本代码通用开头定义项目调整设计变量软件内对应位置脚本 设置求解器软件内对应位置脚本…...

Blueprints - List View Widget

一些学习笔记归档&#xff1b; 需要读取动态数据把多个条目显示在UI上的时候&#xff0c;可能用到List View组件&#xff1b;假如有Widget要使用在List View中&#xff0c;此Widget需要继承相关接口&#xff1a; 这样就能在List View控件中选择已经继承接口的Widget组件了&…...

docker-compose搭建prometheus以及grafana

1. 什么是 Prometheus&#xff1f; Prometheus 是一个开源的系统监控和告警工具&#xff0c;由 SoundCloud 于 2012 年开始开发&#xff0c;现为 CNCF&#xff08;Cloud Native Computing Foundation&#xff09;项目之一。它特别适合云原生环境和容器编排系统&#xff08;如 …...

进阶智能体实战八、需求分析助手(基于qwen多模态大模型对图文需求文档分析)(帮你生成 模块划分+页面+表设计、状态机、工作流、ER模型)

🚀 基于通义千问大模型的智能需求分析助手:一键生成需求分析、模块划分、ER 图和工作流! 在软件开发的早期阶段,需求分析是至关重要的一环。然而传统方式往往需要产品经理和架构师投入大量精力分析需求文档、划分模块、设计数据结构,效率低、容易出错。 为了解决这一痛…...

Git -> Git Stash临时保存当前工程分支修改

Git Stash 基本概念 git stash 用于临时保存当前工作目录的修改&#xff0c;让你可以快速切换到一个干净的工作状态&#xff0c;之后再恢复这些修改。 1. 保存当前修改 git stash # 或者添加描述信息 git stash save "修改描述"2. 查看stash列表 git stash list3…...

多线程和并发之线程

线程 前面讲到进程&#xff1a;为了并发执行任务&#xff08;程序&#xff09;&#xff0c;现代操作系统才引进进程的概念 分析&#xff1a; 创建开销问题&#xff1a;创建一个进程开销&#xff1a;大 子进程需要拷贝父进程的整个地址空间 通信开销问题&#xff1a;进程间的通…...

apptrace 的优势以及对 App 的价值

官网地址&#xff1a;AppTrace - 专业的移动应用推广追踪平台 apptrace 的优势以及对 App 的价值​ App 拉起作为移动端深度链接技术的关键应用&#xff0c;能实现从 H5 网页到 App 的无缝跳转&#xff0c;并精准定位到 App 内指定页面。apptrace 凭借专业的技术与丰富的经验…...

android studio debug调试出现 IOException异常

解决Android调试端口无法打开的问题&#xff0c;出现"Unable to open debugger port"错误时&#xff0c;可以进入app设置&#xff0c;选择Debugger选项&#xff0c;将Debug type更改为Java Only模式。这个方法适用于Android Studio调试时遇到的端口连接问题&#xff…...

PySpark 中使用 SQL 语句和表进行计算

PySpark 中使用 SQL 语句和表进行计算 PySpark 完全支持使用 SQL 语句和表进行 Spark 计算。以下是几种常见的使用方式&#xff1a; 1. 使用 Spark SQL from pyspark.sql import SparkSession# 创建 SparkSession spark SparkSession.builder.appName("SQLExample&quo…...

[Python] Python中的多重继承

文章目录 Lora中的例子 Lora中的例子 https://github.com/michaelnny/QLoRA-LLM/blob/main/qlora_llm/models/lora.py#L211C1-L243C10如果继承两个父类&#xff0c;并且父类的__init__参数不一样&#xff0c;则可以显式的调用父类init&#xff1b;如果用super().__init__()则需…...

在 RedHat 系统(RHEL 7/8/9)中安装 ​​pythonnet​​ 和 ​​.NET Core​​ 的完整指南

​1. 安装 .NET Core SDK​​ ​​RHEL 8/9&#xff08;推荐&#xff09;​​ bash # 添加微软仓库 sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm# 安装 .NET 8 SDK&#xff08;包含运行时&#xff09; sudo dnf install -y dot…...

vr中风--数据处理模型搭建与训练

# -*- coding: utf-8 -*- """ MUSED-I康复评估系统&#xff08;增强版&#xff09; 包含&#xff1a;多通道sEMG数据增强、混合模型架构、标准化处理 """ import numpy as np import pandas as pd from sklearn.model_selection import train_te…...

Socket网络编程之UDP套件字

基于的UDP套件字编程流程 UDP传输层的协议&#xff0c;面向无连接&#xff0c;数据报的传输层协议。 “ 无连接 ”&#xff1a;不可靠 在网络环境较好的情况下&#xff0c;UDP效率较高在网络环境较差的情况下&#xff0c;UDP可能存在丢包的情况同时一些“ 实时应用 ” 采用UD…...

前端学习(7)—— HTML + CSS实现博客系统页面

目录 一&#xff0c;效果展示 二&#xff0c;实现博客列表页 2.1 实现导航栏 2.2 实现个人信息 2.3 实现博客列表 三&#xff0c;实现博客正文页 3.2 复用 3.4 实现博客正文 四&#xff0c;实现博客登录页 4.1 版心 4.2 登录框 五&#xff0c;实现博客编辑页 5.1 …...

Bert和GPT区别

BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;和 GPT&#xff08;Generative Pre-trained Transformer&#xff09;都基于 Transformer 架构&#xff0c;但在设计目标、预训练任务和应用场景上有很大区别&#xff1a; 1. 架构方向性 B…...

聊一聊接口测试中缓存处理策略

目录 一、强制绕过缓存 添加时间戳参数 修改请求头 二、主动清除缓存 清除本地缓存 清除服务端缓存&#xff08;需权限&#xff09; 清除CDN缓存 三、测试缓存逻辑 首次请求获取数据 记录响应头中的缓存标识​​​​​ 验证缓存生效 测试缓存过期​​​​​​​ 四…...

RuoYi前后端分离框架实现前后端数据传输加密(二)之前端篇

一、背景 本文是RuoYi前后端分离框架实现前后端数据传输加密(一)之后端篇文章配套的,主要介绍前端对自定义字段传输加密的实现,两篇文章结合可以完整的完成RuoYi前后端分离框架对API通信过程中实现自定义字段加密传输。前端的加解密实现,不涉及到界面的修改,仅仅是方法的…...

如何使用.Net Reactor 批量加密 DLL

若在日常工作中加密操作的使用频率较高&#xff0c;每次启动程序并执行选择 DLL 文件等操作均会显得较为繁琐。在此&#xff0c;分享一种可提升操作效率的方法&#xff1a;通过命令行方式调用脚本&#xff0c;即可实现 DLL 或 Exe 文件的批量加密处理。具体操作如下&#xff1a…...

基于视觉的车道线检测完整代码:让驾驶更安全的开源解决方案

基于视觉的车道线检测完整代码&#xff1a;让驾驶更安全的开源解决方案 【下载地址】基于视觉的车道线检测完整代码 这是一个基于视觉的车道线检测开源项目&#xff0c;提供完整的代码示例&#xff0c;采用滑动窗口算法实现。项目通过逐行扫描图像&#xff0c;精准识别曲线车道…...

Intellij IDEA 查找接口实现类的快捷键

快捷键是 IntelliJ IDEA&#xff08;包括 PyCharm、WebStorm 等 JetBrains 家族 IDE&#xff09; 中非常常用的代码导航功能。下面是对你提到的两个快捷键的详细解释和用途说明&#xff1a; &#x1f50d; 1. 查找接口的实现类&#xff08;或方法的实现&#xff09; &#x1f…...

鸿蒙仓颉开发语言实战教程:自定义tabbar

大家周末好呀&#xff0c;今天继续分享仓颉语言开发商城应用的实战教程&#xff0c;今天要做的是tabbar。 大家都知道ArkTs有Tabs和TabContent容器&#xff0c;能够实现上图的样式&#xff0c;满足基本的使用需求。而仓颉就不同了&#xff0c;它虽然也有这两个组件&#xff0c;…...

03.MySQL表的操作详解

MySQL表的操作详解 MySQL 表的操作概述创建表 2.1 创建表的基本语法查看表结构修改表 4.1 新增列 4.2 修改列属性 4.3 修改列名 4.4 修改表名 4.5 删除列删除表 1. MySQL表的操作概述 MySQL表的操作是数据库开发和管理中的核心内容&#xff0c;主要涉及**数据定义语言&#…...

28 C 语言作用域详解:作用域特性(全局、局部、块级)、应用场景、注意事项

1 作用域简介 作用域定义了代码中标识符&#xff08;如变量、常量、数组、函数等&#xff09;的可见性与可访问范围&#xff0c;即标识符在程序的哪些位置能够被引用或访问。在 C 语言中&#xff0c;作用域主要分为三类&#xff1a; 全局作用域局部作用域块级作用域 需注意&am…...