【Python】教你彻底认识Python中的Web开发

​​​​在这里插入图片描述

文章目录

    • 一、Web开发的基本概念
      • 1. Web服务器
      • 2. 客户端-服务器模型
      • 3. HTTP协议
      • 4. 前端与后端
    • 二、常用的Web开发框架
      • 1. Django
        • 1.1 安装Django
        • 1.2 创建Django项目
        • 1.3 定义模型
        • 1.4 定义视图
        • 1.5 定义URL路由
        • 1.6 模板
      • 2. Flask
        • 2.1 安装Flask
        • 2.2 创建Flask应用
        • 2.3 模板
        • 2.4 路由和视图
    • 三、数据库集成
      • 1. Django中的数据库集成
        • 1.1 配置数据库
        • 1.2 迁移数据库
        • 1.3 数据操作
      • 2. Flask中的数据库集成
        • 2.1 安装Flask-SQLAlchemy
        • 2.2 配置数据库
        • 2.3 定义模型
        • 2.4 数据操作
    • 四、前端集成
      • 1. 使用Django进行前端集成
      • 2. 使用Flask进行前端集成
    • 五、RESTful API开发
      • 1. 使用Django REST Framework开发RESTful API
        • 1.1 安装Django REST Framework
        • 1.2 配置Django REST Framework
        • 1.3 定义序列化器
        • 1.4 定义视图
        • 1.5 配置URL路由
      • 2. 使用Flask开发RESTful API
        • 2.1 安装Flask-RESTful
        • 2.2 配置Flask-RESTful
        • 2.3 定义资源
        • 2.4 运行Flask应用
    • 六、Web应用的部署与运维
      • 1. 使用Gunicorn和Nginx部署Django应用
        • 1.1 安装Gunicorn
        • 1.2 启动Gunicorn
        • 1.3 配置Nginx
        • 1.4 启动Nginx
      • 2. 使用uWSGI和Nginx部署Flask应用
        • 2.1 安装uWSGI
        • 2.2 配置uWSGI
        • 2.3 配置Nginx
        • 2.4 启动uWSGI和Nginx
    • 七、实际应用示例
      • 1. 开发一个简单的博客系统
        • 1.1 创建Django项目和应用
        • 1.2 定义模型
        • 1.3 定义视图
        • 1.4 配置URL路由
        • 1.5 创建模板
        • 1.6 运行Django开发服务器
      • 2. 开发一个简单的任务管理系统
        • 2.1 创建Flask应用
        • 2.2 创建模板
        • 2.3 运行Flask应用
    • 结论

Python是一种广泛应用于Web开发的编程语言。其丰富的库和框架使得开发高效、可扩展的Web应用变得更加容易。在这篇文章中,我们将深入探讨Python在Web开发中的应用,涵盖Web开发的基本概念、常用的Web开发框架、数据库集成、前端集成、RESTful API开发、Web应用的部署与运维,以及一些实际应用示例。

一、Web开发的基本概念

在深入探讨Python Web开发之前,有必要先了解一些Web开发的基本概念。

1. Web服务器

Web服务器是处理客户端请求并返回相应内容的软件。常见的Web服务器有Apache、Nginx等。

2. 客户端-服务器模型

Web开发通常遵循客户端-服务器模型。客户端(如浏览器)向服务器发送请求,服务器处理请求并返回响应。

3. HTTP协议

HTTP(HyperText Transfer Protocol)是Web通信的基础协议。它定义了客户端和服务器之间如何传输数据。

4. 前端与后端

Web开发通常分为前端和后端。前端负责展示用户界面,后端负责处理业务逻辑和数据存储。

二、常用的Web开发框架

Python有多个流行的Web开发框架,最常用的是Django和Flask。Django是一个全功能的Web框架,适用于大型项目;Flask是一个轻量级的Web框架,适用于小型项目和原型开发。

1. Django

Django是一个高级的Python Web框架,鼓励快速开发和清晰、实用的设计。它提供了丰富的功能,如ORM(对象关系映射)、模板引擎、表单处理、认证系统等。

1.1 安装Django

安装Django非常简单,可以通过pip命令进行安装:

pip install django
1.2 创建Django项目

以下示例展示了如何创建一个Django项目和应用:

# 创建Django项目
django-admin startproject mysite

# 进入项目目录
cd mysite

# 创建Django应用
python manage.py startapp myapp
1.3 定义模型

在Django中,模型用于定义数据库结构。以下示例展示了如何定义一个简单的模型:

# myapp/models.py
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    published_date = models.DateTimeField(auto_now_add=True)
1.4 定义视图

视图用于处理客户端请求并返回响应。以下示例展示了如何定义一个简单的视图:

# myapp/views.py
from django.shortcuts import render
from .models import Article

def index(request):
    articles = Article.objects.all()
    return render(request, 'index.html', {'articles': articles})
1.5 定义URL路由

URL路由用于将URL映射到视图函数。以下示例展示了如何定义URL路由:

# myapp/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

在项目的主URL配置中包含应用的URL配置:

# mysite/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('myapp/', include('myapp.urls')),
]
1.6 模板

模板用于生成HTML内容。以下是一个简单的模板示例:

<!-- myapp/templates/index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Article List</title>
</head>
<body>
    <h1>Article List</h1>
    <ul>
        {% for article in articles %}
            <li>{{ article.title }}</li>
        {% endfor %}
    </ul>
</body>
</html>

2. Flask

Flask是一个轻量级的Python Web框架,灵活且易于扩展。它适用于小型项目和快速原型开发。

2.1 安装Flask

安装Flask也非常简单,可以通过pip命令进行安装:

pip install flask
2.2 创建Flask应用

以下示例展示了如何创建一个Flask应用:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)
2.3 模板

Flask使用Jinja2模板引擎,以下是一个简单的模板示例:

<!-- templates/index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
</head>
<body>
    <h1>Welcome to Flask</h1>
</body>
</html>
2.4 路由和视图

Flask中的路由和视图定义非常简单,以下是一个示例:

@app.route('/hello/<name>')
def hello(name):
    return f"Hello, {name}!"

三、数据库集成

在Web开发中,数据库用于存储和管理数据。Python中的Web框架通常提供与数据库集成的支持,如Django的ORM和Flask的扩展。

1. Django中的数据库集成

Django内置了ORM,可以方便地与数据库进行交互。以下示例展示了如何配置数据库和使用ORM进行数据操作:

1.1 配置数据库

在Django项目的设置文件中配置数据库连接:

# mysite/settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
1.2 迁移数据库

在定义好模型后,需要进行数据库迁移:

# 创建迁移文件
python manage.py makemigrations

# 应用迁移
python manage.py migrate
1.3 数据操作

使用ORM进行数据操作非常方便,以下是一些示例:

# 创建对象
article = Article.objects.create(title='First Article', content='This is the content.')

# 查询对象
article = Article.objects.get(id=1)

# 更新对象
article.title = 'Updated Title'
article.save()

# 删除对象
article.delete()

2. Flask中的数据库集成

Flask可以通过扩展与数据库集成,常用的扩展是Flask-SQLAlchemy。

2.1 安装Flask-SQLAlchemy

可以通过pip命令安装Flask-SQLAlchemy:

pip install flask-sqlalchemy
2.2 配置数据库

在Flask应用中配置数据库连接:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
db = SQLAlchemy(app)
2.3 定义模型

使用SQLAlchemy定义模型:

class Article(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)
    published_date = db.Column(db.DateTime, default=datetime.utcnow)
2.4 数据操作

使用SQLAlchemy进行数据操作,以下是一些示例:

# 创建对象
article = Article(title='First Article', content='This is the content.')
db.session.add(article)
db.session.commit()

# 查询对象
article = Article.query.get(1)

# 更新对象
article.title = 'Updated Title'
db.session.commit()

# 删除对象
db.session.delete(article)
db.session.commit()

四、前端集成

在Web开发中,前端用于展示用户界面。Python的Web框架可以很容易地与前端技术(如HTML、CSS、JavaScript)集成。

1. 使用Django进行前端集成

Django的模板引擎可以与HTML、CSS和JavaScript无缝集成。以下是一个示例:

<!-- myapp/templates/index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Article List</title>
    <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
</head>
<body>
    <h1>Article List</h1>
    <ul>
        {% for article in articles %}
            <li>{{ article.title }}</li>
        {% endfor %}
    </ul>
    <script src="{% static

 'js/script.js' %}"></script>
</body>
</html>

在项目的设置文件中配置静态文件:

# mysite/settings.py
STATIC_URL = '/static/'

2. 使用Flask进行前端集成

Flask也可以很容易地与前端技术集成。以下是一个示例:

<!-- templates/index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body>
    <h1>Welcome to Flask</h1>
    <script src="{{ url_for('static', filename='js/script.js') }}"></script>
</body>
</html>

在Flask应用中配置静态文件:

app = Flask(__name__, static_url_path='/static')

五、RESTful API开发

RESTful API是一种设计网络应用的风格,通过定义资源和操作,使得客户端可以通过HTTP请求与服务器进行通信。Python的Web框架提供了丰富的工具来开发RESTful API。

1. 使用Django REST Framework开发RESTful API

Django REST Framework是一个功能强大的工具集,用于构建Web API。以下示例展示了如何使用Django REST Framework开发RESTful API:

1.1 安装Django REST Framework

可以通过pip命令安装Django REST Framework:

pip install djangorestframework
1.2 配置Django REST Framework

在Django项目的设置文件中配置Django REST Framework:

# mysite/settings.py
INSTALLED_APPS = [
    ...
    'rest_framework',
]
1.3 定义序列化器

序列化器用于将模型实例转换为JSON格式。以下示例展示了如何定义序列化器:

# myapp/serializers.py
from rest_framework import serializers
from .models import Article

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = '__all__'
1.4 定义视图

视图用于处理API请求并返回响应。以下示例展示了如何定义视图:

# myapp/views.py
from rest_framework import viewsets
from .models import Article
from .serializers import ArticleSerializer

class ArticleViewSet(viewsets.ModelViewSet):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer
1.5 配置URL路由

在项目的URL配置中包含API的URL路由:

# mysite/urls.py
from django.contrib import admin
from django.urls import include, path
from rest_framework.routers import DefaultRouter
from myapp import views

router = DefaultRouter()
router.register(r'articles', views.ArticleViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include(router.urls)),
]

2. 使用Flask开发RESTful API

Flask可以使用Flask-RESTful扩展来开发RESTful API。以下示例展示了如何使用Flask-RESTful开发RESTful API:

2.1 安装Flask-RESTful

可以通过pip命令安装Flask-RESTful:

pip install flask-restful
2.2 配置Flask-RESTful

在Flask应用中配置Flask-RESTful:

from flask import Flask
from flask_restful import Api, Resource

app = Flask(__name__)
api = Api(app)
2.3 定义资源

资源用于处理API请求并返回响应。以下示例展示了如何定义资源:

class Article(Resource):
    def get(self):
        return {'message': 'Hello, World!'}

api.add_resource(Article, '/article')
2.4 运行Flask应用
if __name__ == '__main__':
    app.run(debug=True)

六、Web应用的部署与运维

将开发好的Web应用部署到服务器上,并进行运维管理,是Web开发中的重要步骤。以下将介绍一些常用的部署与运维工具和方法。

1. 使用Gunicorn和Nginx部署Django应用

Gunicorn是一个高性能的Python WSGI HTTP服务器,Nginx是一个高性能的HTTP和反向代理服务器。以下示例展示了如何使用Gunicorn和Nginx部署Django应用:

1.1 安装Gunicorn

可以通过pip命令安装Gunicorn:

pip install gunicorn
1.2 启动Gunicorn

在项目目录下启动Gunicorn:

gunicorn mysite.wsgi:application
1.3 配置Nginx

在Nginx的配置文件中配置反向代理:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
1.4 启动Nginx

启动Nginx服务器:

sudo systemctl start nginx

2. 使用uWSGI和Nginx部署Flask应用

uWSGI是一个功能强大的应用服务器,Nginx是一个高性能的HTTP和反向代理服务器。以下示例展示了如何使用uWSGI和Nginx部署Flask应用:

2.1 安装uWSGI

可以通过pip命令安装uWSGI:

pip install uwsgi
2.2 配置uWSGI

创建uWSGI配置文件:

[uwsgi]
module = wsgi:app
master = true
processes = 5
socket = myapp.sock
chmod-socket = 660
vacuum = true
die-on-term = true
2.3 配置Nginx

在Nginx的配置文件中配置反向代理:

server {
    listen 80;
    server_name example.com;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/path/to/yourproject/myapp.sock;
    }
}
2.4 启动uWSGI和Nginx

启动uWSGI:

uwsgi --ini uwsgi.ini

启动Nginx:

sudo systemctl start nginx

七、实际应用示例

以下是两个实际应用示例,演示如何使用Python进行Web开发。

1. 开发一个简单的博客系统

以下示例展示了如何使用Django开发一个简单的博客系统,包括文章的创建、编辑、删除和显示。

1.1 创建Django项目和应用
django-admin startproject blog
cd blog
python manage.py startapp posts
1.2 定义模型
# posts/models.py
from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    published_date = models.DateTimeField(auto_now_add=True)
1.3 定义视图
# posts/views.py
from django.shortcuts import render, get_object_or_404
from .models import Post

def post_list(request):
    posts = Post.objects.all()
    return render(request, 'posts/post_list.html', {'posts': posts})

def post_detail(request, pk):
    post = get_object_or_404(Post, pk=pk)
    return render(request, 'posts/post_detail.html', {'post': post})
1.4 配置URL路由
# posts/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list'),
    path('<int:pk>/', views.post_detail, name='post_detail'),
]

在项目的主URL配置中包含应用的URL配置:

# blog/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('posts.urls')),
]
1.5 创建模板
<!-- posts/templates/posts/post_list.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Blog</title>
</head>
<body>
    <h1>Blog Posts</h1>
    <ul>
        {% for post in posts %}
            <li><a href="{% url 'post_detail' post.pk %}">{{ post.title }}</a></li>
        {% endfor %}
    </ul>
</body>
</html>
<!-- posts/templates/posts/post_detail.html -->
<!DOCTYPE html>
<html>
<head>
    <title>{{ post.title }}</title>
</head>
<body>
    <h1>{{ post.title }}</h1>
    <p>{{ post.content }}</p>
    <p>Published on {{ post.published_date }}</p>
</body>


</html>
1.6 运行Django开发服务器
python manage.py runserver

在浏览器中访问http://127.0.0.1:8000,即可查看博客系统。

2. 开发一个简单的任务管理系统

以下示例展示了如何使用Flask开发一个简单的任务管理系统,包括任务的创建、编辑、删除和显示。

2.1 创建Flask应用
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///tasks.db'
db = SQLAlchemy(app)

class Task(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    complete = db.Column(db.Boolean, default=False)

@app.route('/')
def index():
    tasks = Task.query.all()
    return render_template('index.html', tasks=tasks)

@app.route('/add', methods=['POST'])
def add():
    title = request.form.get('title')
    new_task = Task(title=title)
    db.session.add(new_task)
    db.session.commit()
    return redirect(url_for('index'))

@app.route('/complete/<int:task_id>')
def complete(task_id):
    task = Task.query.get(task_id)
    task.complete = not task.complete
    db.session.commit()
    return redirect(url_for('index'))

@app.route('/delete/<int:task_id>')
def delete(task_id):
    task = Task.query.get(task_id)
    db.session.delete(task)
    db.session.commit()
    return redirect(url_for('index'))

if __name__ == '__main__':
    db.create_all()
    app.run(debug=True)
2.2 创建模板
<!-- templates/index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Task Manager</title>
</head>
<body>
    <h1>Task Manager</h1>
    <form action="/add" method="post">
        <input type="text" name="title" placeholder="Task Title">
        <button type="submit">Add Task</button>
    </form>
    <ul>
        {% for task in tasks %}
            <li>
                <a href="/complete/{{ task.id }}">{{ task.title }}</a>
                <a href="/delete/{{ task.id }}">Delete</a>
                {% if task.complete %} (Completed) {% endif %}
            </li>
        {% endfor %}
    </ul>
</body>
</html>
2.3 运行Flask应用
python app.py

在浏览器中访问http://127.0.0.1:5000,即可查看任务管理系统。

结论

Python是Web开发中的一种强大工具,提供了丰富的库和框架,使得开发高效、可扩展的Web应用变得更加容易。在本文中,我们深入探讨了Web开发的基本概念、常用的Web开发框架(如Django和Flask)、数据库集成、前端集成、RESTful API开发、Web应用的部署与运维,以及一些实际应用示例。希望这篇文章能帮助你更好地理解和应用Python中的Web开发技术,从而在实际项目中获得更多的开发效率和成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/685962.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

组装服务器重装linux系统【idrac集成戴尔远程控制卡】

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

学习anjuke的过程

一、抓包 先看看12.25.1版本的APP是不是还能使用&#xff0c;如果还能使用我们就先破解低版本的。打开APP后发现还能正常使用&#xff0c;因为低版本的难度低我们就破解这个版本。低版本和高版本的算法是一样的&#xff0c;算法破解之后我们后续抓包替换接口就行了。手机安装上…

重生之 SpringBoot3 入门保姆级学习(17、整合SSM)

重生之 SpringBoot3 入门保姆级学习&#xff08;17、整合SSM&#xff09; 4、数据访问4.1 整合 ssm 4、数据访问 4.1 整合 ssm pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" …

哪吒监控+cfcdn+ 反代grp端口

哪吒监控cfcdn 反代grp端口 背景&#xff1a; 哪吒监控&#xff1a;感觉VPS线路不稳定&#xff0c;为了打消自己潜意识&#xff0c;希望量化延迟。 cfcdn&#xff1a;隐藏真实站点&#xff0c;保障小鸡隐秘安全 反代grpc端口: 反代grpc到支持https(TLS)的端口&#xff0c;这…

ESP32 Error creating RestrictedPinnedToCore

随缘记&#xff0c;刚遇到&#xff0c;等以后就可能不想来写笔记了。 目前要使用到音频数据&#xff0c;所以去用ESP-ADF&#xff0c;但在使用例程上出现了这个API有问题&#xff0c;要去打补丁。 但是我打补丁的时候git bash里显示not apply&#xff0c;不能打上。 网上看到…

OpenCV学习(4.4) 平滑图像

1.目的 在本教程中将学习&#xff1a; 用各种低通滤波器模糊图像。对图像应用自定义过滤器&#xff08;二维卷积&#xff09;。 在图像处理中&#xff0c;平滑图像是一种去噪和模糊技术&#xff0c;用于减少图像中的噪声和细节&#xff0c;使得图像看起来更加平滑。平滑处理…

2024百度之星 跑步

原题链接&#xff1a;码题集OJ-跑步 题目大意&#xff1a;一个n个人在绕圈跑&#xff0c;第i个人跑一圈的时间是i分钟&#xff0c;每二个人位置相同就会打一次招呼&#xff0c;如果同时来到终点&#xff0c;他们就会停下来&#xff0c;请问会打多少次招呼&#xff1f; 思路&a…

文字生成视频!又一王炸!!!(且免费使用!)

VIVA王炸 开场 “ 生成令人惊叹的AI视频&#xff0c;再加上4K视频增强和初学者友好的自动提示优化&#xff0c;为您提供无与伦比的视频创作体验。” 直抒胸臆 自从sora的出现&#xff0c;开启了人工智能的有一个阶段。VIVA是现在唯数不多的与OpenAI的sora互相抗衡。也是为数…

记录遇见的小问题

1&#xff0c;angularjs 使用bootstrap时&#xff0c;遇见模态框怎么点击空白处不关闭&#xff1b; <div id"dialog-modal" data-backdrop"static" data-keyboard"false"> 但是在实际使用过程中调用了一个html 需要在 js里加 $scope.Up…

C语言杂谈:函数栈帧,函数调用时到底发生了什么

我们都知道在调用函数时&#xff0c;要为函数在栈上开辟空间&#xff0c;函数后续内容都会在栈帧空间中保存&#xff0c;如非静态局部变量&#xff0c;返回值等。这段空间就叫栈帧。 当函数调用&#xff0c;就会开辟栈帧空间&#xff0c;函数返回时&#xff0c;栈帧空间就会被释…

基于SSM的“健身俱乐部网站”的设计与实现(源码+数据库+文档)

基于SSM的“健身俱乐部网站”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 用户注册界面图 系统登录界面 添加管理员账户界面…

RPA-UiBot6.0数据整理机器人—杂乱数据秒变报表(内附RPA师资培训课程)

前言 友友们是否常常因为杂乱的数据而烦恼&#xff1f;数据分类、排序、筛选这些繁琐的任务是否占据了友友们的大部分时间&#xff1f;这篇博客将为友友们带来一个新的解决方案&#xff0c;让我们共同学习如何运用RPA数据整理机器人&#xff0c;实现杂乱数据的快速整理&#xf…

[ZJCTF 2019]NiZhuanSiWei、[HUBUCTF 2022 新生赛]checkin、[SWPUCTF 2021 新生赛]pop

目录 [ZJCTF 2019]NiZhuanSiWei [HUBUCTF 2022 新生赛]checkin 1.PHP 关联数组 PHP 数组 | 菜鸟教程 2.PHP 弱比较绕过 PHP 类型比较 | 菜鸟教程 [SWPUCTF 2021 新生赛]pop [ZJCTF 2019]NiZhuanSiWei BUUCTF [ZJCTF 2019]NiZhuanSiWei特详解&#xff08;php伪…

[word] word怎样转换成pdf #职场发展#经验分享#职场发展

word怎样转换成pdf word怎样转换成pdf&#xff1f;word格式是办公中常会用到的格式&#xff0c;word格式编辑好了要想转换成pdf格式再来传输的话需要怎么操作呢&#xff1f;小编这就给大家分享下操作方法&#xff0c;一起来学习下吧&#xff01; 1、安装得力PDF转换器&#x…

C语言 io-文件拷贝

#include <stdio.h> int main(int argc, const char *argv[]) {//1文件拷贝到2文件FILE* fileAfopen(argv[1],"r");FILE* fileBfopen(argv[2],"w");if(NULLfileA){perror("fopen");return -1;}if(NULLfileB){perror("fopen");re…

LangChain 一 hello LLM

本来想先写LangChain系列的&#xff0c;但是最近被AutoGen、LlamaIndex给吸引了。2023就要过去了&#xff0c;TIOBE数据编程语言排名Python都第一了&#xff0c;可见今年AI开发之热。好吧&#xff0c;一边学习业界通用的LangChain框架&#xff0c;一边准备跨年吧。 前言 先是O…

Mac下删除系统自带输入法ABC,正解!

一、背景说明 MacOS 在 14.2 以下的系统存在中文输入法 BUG&#xff0c;会造成系统卡顿&#xff0c;出现彩虹圆圈。如果为了解决这个问题&#xff0c;有两种方法&#xff1a; 升级到最新的 14.5 系统使用第三方输入法 在使用第三方输入法的时候&#xff0c;会发现系统自带的 …

mysql启动出现Error: 2 (No such file or directory)

查看mydql状态 systemctl status mysqlThe designated data directory /var/lib/mysql/ is unusable 查看mysql日志 tail -f /var/log/mysql/error.logtail: cannot open ‘/var/log/mysql/error.log’ for reading: No such file or directory tail: no files remaining 第…

网关API(SpringCloudGateway)如何自定义Filter

1.前言 SpringCloud 虽然给我们提供了很多过滤器&#xff0c;但是这些过滤器功能都是固定的&#xff0c;无法满足用户的各式各样的需求。因此SpringCloud提供了过滤器的扩展功能自定过滤器。 开发者可以根据自己的业务需求自定义过滤器。 2. 自定义 GatewayFilter(局部过滤器)…