Nmap入门到高级【第十一章】

news2024/11/17 11:53:57

在这里插入图片描述

预计更新

第一章. Python 简介

  • Python 简介和历史
  • Python 特点和优势
  • 安装 Python

第二章. 变量和数据类型

  • 变量和标识符
  • 基本数据类型:数字、字符串、布尔值等
  • 字符串操作
  • 列表、元组和字典

第三章. 控制语句和函数

  • 分支结构:if/else 语句
  • 循环结构:for 和 while 循环
  • 函数
  • 参数传递与返回值
  • Lambda 表达式

第四章. 模块和文件 IO

  • 模块的概念
  • 导入模块
  • 文件 IO
  • 序列化和反序列化

第五章. 异常处理

  • 异常简介
  • try/except 语句
  • 自定义异常

第六章. 面向对象编程

  • 类和对象
  • 继承和多态
  • 属性和方法
  • 抽象类和接口

第七章. 正则表达式

  • 正则表达式概述
  • 匹配和搜索
  • 替换和分割

第八章. 并发编程

  • 多线程
  • 多进程
  • 协程和异步编程

第九章. 数据库编程

  • 关系型数据库介绍
  • 使用 SQLite 数据库
  • 使用 MySQL 数据库
  • 使用 PostgreSQL 数据库

第十章. 网络编程

  • Socket 编程简介
  • TCP Socket 编程
  • UDP Socket 编程
  • HTTP 编程

第十一章. Web 开发框架 Flask

  • Flask 简介
  • 安装 Flask
  • 路由和视图函数
  • 模板和静态文件

第十二章. 数据分析和科学计算

  • NumPy 基础
  • Pandas 基础
  • Matplotlib 基础

第十三章 机器学习入门

  • 机器学习概述
  • 监督学习和非监督学习
  • Scikit-Learn 简介
  • 利用 Scikit-Learn 进行数据预处理和模型训练

第十四章. 自然语言处理

  • 自然语言处理概述
  • 中文分词和处理
  • 文本分类和情感分析

第十五章. 游戏开发与 Pygame

  • Pygame 简介
  • Pygame 基础
  • 开发一个简单的游戏
第十一章. Web 开发框架 Flask
   - Flask 简介
   - 安装 Flask
   - 路由和视图函数
   - 模板和静态文件
Flask 简介

Flask是一个基于Python的轻量级Web框架,其目标是使得构建Web应用程序更加容易。Flask使用简单,灵活性高,适合快速开发原型和小型Web应用程序。

本文将介绍Flask的基础知识、特点、组成部分、路由机制、模板引擎、表单处理、扩展等相关内容。

  1. Flask的基础知识

Flask是一个基于Python的Web框架,由Armin Ronacher在2010年创建。Flask使用Werkzeug和Jinja2这两个Python库构建,可以轻松地创建Web应用程序。

Flask具有如下特点:

  • 轻量级:Flask核心只包含了最基本的功能,不像许多其他Web框架那样过于臃肿。
  • 易用性:Flask的API简洁并且易于理解,上手容易。
  • 可扩展性:Flask提供了大量的扩展,能够满足各种需求。
  1. Flask的组成部分

Flask由两个核心组件组成:Werkzeug和Jinja2。

Werkzeug是一个WSGI(Web服务器网关接口)工具包,用于处理HTTP请求和响应、路由分发、错误处理等。Werkzeug提供了一些有用的类和函数,例如Request、Response、redirect()、abort()等。

Jinja2是一个现代的、设计优雅的模板引擎,用于生成HTML页面和其他文本内容。Jinja2支持模板继承、条件语句、循环语句、宏定义等高级功能。

除了核心组件之外,Flask还提供了许多扩展,如数据库集成、表单验证、用户认证等。

  1. Flask的路由机制

在Flask中,路由(Route)是一种将URL映射到视图函数的机制。路由使用装饰器来实现,例如:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

在上面的代码中,使用@app.route()装饰器将URL“/”与视图函数hello_world()绑定。当用户请求该URL时,Flask会调用hello_world()函数并返回响应数据。

路由也支持动态参数,例如:

from flask import Flask

app = Flask(__name__)

@app.route('/user/<username>')
def show_user_profile(username):
    return 'User %s' % username

@app.route('/post/<int:post_id>')
def show_post(post_id):
    return 'Post %d' % post_id

在上面的代码中,通过在URL中添加<username><int:post_id>来指定动态参数。这些参数会自动传递给相应的视图函数。

  1. Flask的模板引擎

在Flask中,可以使用Jinja2模板引擎来生成HTML页面和其他文本内容。Jinja2模板使用特殊语法包含变量、控制结构和函数调用,以便生成动态内容。

下面是一个示例程序,用于使用Jinja2模板引擎生成HTML页面:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def hello():
    return render_template('hello.html', name='World')

在上面的程序中,使用render_template()方法渲染名为hello.html的模板,并将name参数传递给模板。可以在模板中使用{{}}语法引用该参数。

例如,以下代码展示了如何在模板中使用控制结构和继承功能:

{% extends "base.html" %}

{% block content %}
    {% if name %}
        <h1>Hello, {{ name }}!</h1>
    {% else %}
        <h1 > Hello, World!</h1>
    {% endif %}
{% endblock %}

在上面的模板中,使用{% extends "base.html" %}指定模板继承关系。模板会继承一个名为base.html的基础模板,并覆盖其中的一个名为content的块。

  1. Flask的表单处理

在Web应用程序中,表单是用户与应用之间交互的一种重要方式。Flask提供了许多方法来处理表单数据,包括GET和POST请求、表单验证、文件上传等。

下面是一个示例程序,用于处理用户提交的表单数据:

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        name = request.form['name']
        email = request.form['email']
        message = request.form['message']
        return f'Thank you for your message, {name}!'
    else:
        return render_template('index.html')

在上面的程序中,使用request.form属性获取表单数据,并将其保存到变量中。可以在视图函数中进行数据验证、处理等操作,并返回响应数据。

  1. Flask的扩展

除了核心组件之外,Flask还提供了许多扩展,以满足不同需求。以下列举了几个常用的扩展:

  • Flask-WTF:用于处理Web表单和验证数据。
  • Flask-SQLAlchemy:用于数据库集成,支持多种类型的数据库。
  • Flask-Login:用于用户认证和会话管理。
  • Flask-Mail:用于发送电子邮件。

这些扩展均可通过pip install命令安装。在使用时,需要在Flask应用程序中导入并初始化相应的扩展。

  1. 总结

Flask是一个灵活、易用、可扩展的Python Web框架,提供了路由机制、模板引擎、表单处理、扩展等功能。Flask使用简单,适合快速开发原型和小型Web应用程序。在实际开发中,还需要注意性能、安全性、可维护性等方面的问题,保证应用程序的质量和稳定性。

安装 Flask

安装Flask是开发基于Flask的Web应用程序的第一步。本文将介绍如何在不同操作系统和Python环境下安装Flask,以及常见问题的解决方法。

  1. 在Windows上安装Flask

在Windows上安装Flask需要先安装Python。可以从官网(https://www.python.org/downloads/windows/)下载适用于Windows的Python安装程序,并按照提示进行安装。在安装完成后,可以通过以下命令验证Python是否已经正确安装:

python --version

接着,可以使用pip工具来安装Flask。pip是Python包管理器,用于下载、安装和管理Python模块。

在Windows上,可以打开命令提示符或PowerShell窗口,执行以下命令来安装Flask:

pip install Flask

该命令会自动下载并安装最新版本的Flask。如果需要安装特定版本的Flask,则可以指定版本号,例如:

pip install Flask==1.1.2
  1. 在MacOS上安装Flask

在MacOS上安装Flask也需要先安装Python。可以通过Homebrew、MacPorts或官方网站等方式安装Python。

安装完成后,可以通过以下命令验证Python是否已经正确安装:

python3 --version

接着,使用pip工具来安装Flask。可以在终端中执行以下命令来安装Flask:

pip3 install Flask

该命令会自动下载并安装最新版本的Flask。如果需要安装特定版本的Flask,则可以指定版本号,例如:

pip3 install Flask==1.1.2
  1. 在Linux上安装Flask

在Linux上安装Flask也需要先安装Python。可以使用Linux发行版提供的软件包管理器来安装Python。例如,在Ubuntu上可以执行以下命令来安装Python:

sudo apt-get update
sudo apt-get install python3

安装完成后,可以通过以下命令验证Python是否已经正确安装:

python3 --version

接着,使用pip工具来安装Flask。可以在终端中执行以下命令来安装Flask:

sudo pip3 install Flask

该命令会自动下载并安装最新版本的Flask。如果需要安装特定版本的Flask,则可以指定版本号,例如:

sudo pip3 install Flask==1.1.2
  1. 在虚拟环境中安装Flask

为了避免不同应用程序之间的依赖冲突,推荐在虚拟环境中安装Flask。虚拟环境使得每个应用程序都有自己独立的Python环境和依赖库。

虚拟环境可以使用venv、virtualenv或conda等工具创建。这里以venv为例,介绍如何在虚拟环境中安装Flask。

首先,在终端中进入项目目录,执行以下命令创建虚拟环境:

python3 -m venv env

该命令会在当前目录下创建名为“env”的虚拟环境。

接着,激活虚拟环境:

source env/bin/activate

虚拟环境激活后,可以使用pip安装Flask:

pip install Flask

此时,Flask会被安装在虚拟环境的lib/python3.x/site-packages目录中。

  1. 常见问题及解决方法

在安装Flask过程中,可能会遇到一些常见问题。下面列举了几个常见问题及其解决方法。

  • pip无法安装Flask

如果pip无法安装Flask,有以下几种可能的原因:

- Python版本不兼容:Flask可能需要特定版本的Python才能正常运行。可以在Flask官方文档中查看所需的Python版本,并安装相应版本的Python。

网络问题:如果网络连接不稳定或速度较慢,pip无法成功下载Flask。可以尝试切换到其他网络环境,或使用国内的镜像源来加速下载。例如,在中国大陆可以使用阿里云、清华大学等镜像源。

权限问题:如果没有足够的权限进行安装,pip可能会报错。可以尝试使用sudo或管理员权限来运行pip。例如,在Linux上可以使用以下命令:

sudo pip3 install Flask
  • Flask无法运行

如果Flask安装完成后无法正常运行,有以下几种可能的原因:

- 依赖库未安装:Flask可能需要一些依赖库才能正常运行。可以查看Flask官方文档中的依赖列表,并安装缺失的依赖库。

- 环境变量未设置:如果Flask安装在非默认路径下,可能需要将其添加到系统的环境变量中。例如,在Windows上可以在“高级系统设置”中添加PYTHONPATH环境变量。

- 路径错误:如果代码中指定了错误的文件路径,Flask可能无法找到对应的文件。可以检查代码中的路径是否正确。
  1. 总结

在本文中,我们介绍了在不同操作系统和Python环境下安装Flask的方法。无论是在Windows、MacOS还是Linux上,都可以使用pip工具来安装Flask。为了避免依赖冲突,建议在虚拟环境中安装Flask。在安装过程中,可能会遇到一些常见问题,需要仔细检查并尝试解决。通过正确地安装和配置Flask,可以快速开发Web应用程序,并实现各种功能,如路由、模板引擎、表单处理、扩展等。

路由和视图函数

Flask是一个轻量级的Web框架,它的设计理念是让开发者可以快速地构建Web应用程序。其中最重要的组成部分之一就是路由和视图函数。

本文将深入探讨Flask中路由和视图函数的概念、使用方法以及常见问题和解决方案。

  1. 什么是路由和视图函数?

在Web应用程序中,客户端向服务器发送请求时需要指定请求的URL地址。路由就是用于将这些请求映射到相应的处理程序的机制。在Flask中,路由是通过装饰器实现的。

视图函数是处理请求的Python函数。当用户访问某个URL时,Flask会找到与之匹配的路由,并调用对应的视图函数来处理请求。视图函数通常返回一个响应对象,告诉浏览器如何显示页面或其他内容。

例如,下面是一个简单的Flask应用程序,包含一个路由和一个视图函数:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello, World!'

在上面的代码中,使用了@app.route('/')装饰器指定了根路径“/”对应的路由。当用户访问该URL时,Flask会调用index()函数并返回字符串“Hello, World!”作为响应。

  1. 路由参数

除了根路径“/”外,Flask还支持带有参数的路由。例如,在Web应用程序中,通常会有一个页面用于显示用户信息,其URL可能类似于“/users/123”,其中“123”就是用户的ID。

在Flask中,可以使用尖括号来指定路由参数。例如:

@app.route('/users/<int:user_id>')
def show_user(user_id):
    return f'This is the page for user {user_id}.'

在上面的代码中,使用了<int:user_id>指定了一个整数类型的路由参数。当用户访问类似“/users/123”的URL时,Flask会将“123”作为参数传递给show_user()函数,并返回相应的页面。

除了整数类型之外,还可以使用字符串、浮点数等类型的路由参数。例如:

@app.route('/users/<string:username>')
def show_username(username):
    return f'This is the page for user {username}.'

在上面的代码中,使用了<string:username>指定了一个字符串类型的路由参数。当用户访问类似“/users/john”的URL时,Flask会将“john”作为参数传递给show_username()函数,并返回相应的页面。

  1. HTTP方法

HTTP协议定义了几种不同的请求方法,包括GET、POST、PUT、DELETE等。在Web应用程序中,我们需要根据请求方法来执行不同的操作。

在Flask中,可以使用methods参数指定支持的请求方法。例如:

@app.route('/users/<int:user_id>', methods=['GET', 'POST'])
def handle_user(user_id):
    if request.method == 'GET':
        # 处理GET请求
    elif request.method == 'POST':
        # 处理POST请求

在上面的代码中,使用了methods=['GET', 'POST']指定了支持的请求方法。当用户发送GET请求时,Flask会调用handle_user()函数并传递相应的参数;当用户发送POST请求时,Flask也会调用handle_user()函数,并执行其他操作。

  1. 路由顺序

在定义路由时,需要注意路由顺序。如果路由的顺序不正确,可能会导致某些路由无法正常工作。

例如,下面的代码定义了两个路由:

@app.route('/users/<int:user_id>')
def show_user(user_id):
    return f'This is the page for user {user_id}.'

@app.route('/users/new')
def new_user():
    return 'This is the page for creating a new user.'

在上面的代码中,第一个路由使用了带有参数的URL模式,用于显示特定用户的信息;第二个路由用于创建新用户。如果两个路由的顺序颠倒,可能会导致无法正确处理请求。

例如,当用户访问类似“/users/new”的URL时,Flask会先匹配第一个路由,并将“new”作为user_id传递给show_user()函数,导致程序逻辑错误。因此,需要确保路由的顺序正确,以避免这种问题。

  1. URL构建

在Flask中,可以使用url_for()函数来生成对应于指定视图函数的URL。这种方法可以减少硬编码URL的错误和维护成本,并支持动态路由参数。

url_for()函数接受视图函数的名称作为参数,并返回对应的URL。例如:

from flask import Flask, url_for

app = Flask(__name__)

@app.route('/')
def index():
    return f'The URL for this page is {url_for("index")}'

@app.route('/users/<int:user_id>')
def show_user(user_id):
    return f'The URL for user {user_id} is {url_for("show_user", user_id=user_id)}'

在上面的代码中,使用了url_for()函数来生成根路径和带参数的URL。当用户访问相应的URL时,Flask会自动调用相应的视图函数并返回响应。

  1. 路由重定向

在一些情况下,需要将用户重定向到其他页面。例如,在用户未登录时访问受保护的页面,可以将其重定向到登录页面。

在Flask中,可以使用redirect()函数进行路由重定向。例如:

from flask import Flask, redirect, url_for

app = Flask(__name__)

@app.route('/')
def index():
    return redirect(url_for('login'))

@app.route('/login')
def login():
    return 'This is the login page.'

在上面的代码中,当用户访问根路径“/”时,程序将使用redirect()函数将其重定向到登录页面。url_for()函数用于生成登录页面的URL。

  1. 使用Blueprint组织路由

随着Web应用程序的规模增长,路由数量也会不断增多。为了更好地组织和管理路由,可以使用Blueprint将相关的路由组织在一起。

在Flask中,Blueprint是一种组织路由的方式。它可以将多个路由组合成一个单独的模块,并允许在应用程序中注册多个蓝图。

例如,下面的代码定义了一个名为users的蓝图,包含了两个路由:

from flask import Blueprint

users_bp = Blueprint('users', __name__)

@users_bp.route('/<int:user_id>')
def show_user(user_id):
    return f'This is the page for user {user_id}.'

@users_bp.route('/new')
def new_user():
    return 'This is the page for creating a new user.'

在上面的代码中,使用了Blueprint()函数创建了一个名为users_bp的蓝图,并定义了两个路由。当用户访问类似“/users/123”的URL时,Flask会将请求转发给users_bp蓝图中相应的路由处理函数。

要将蓝图注册到应用程序中,可以使用app.register_blueprint()方法。例如:

from flask import Flask

app = Flask(__name__)
app.register_blueprint(users_bp, url_prefix='/users')

在上面的代码中,使用了register_blueprint()方法将users_bp蓝图注册到应用程序中,并指定了前缀“/users”。这样,在访问属于users_bp蓝图的路由时,就需要在URL中加上前缀“/users”。

  1. 常见问题和解决方案

在使用Flask的路由和视图函数时,可能会遇到一些常见问题。下面列出了一些常见问题和相应的解决方案。

  • 404错误

当用户访问不存在的URL时,Flask会返回404错误。为了更好地处理404错误,可以使用@app.errorhandler(404)装饰器定义一个专门的错误处理函数。例如:

from flask import Flask, render_template

app = Flask(__name__)

@app.errorhandler(404)
def page_not_found(error):
    return render_template('404.html'), 404

在上面的代码中,定义了一个名为page_not_found()的错误处理函数,并将其与404错误关联起来。当用户访问不存在的URL时,Flask会调用该函数并返回相应的页面。

  • URL构建失败

在使用url_for()函数生成URL时,可能会出现构建失败的情况。这通常是因为未正确指定视图函数名称或路由参数。

为了避免这种问题,建议在编写路由和视图函数时尽量规范化命名。另外,在使用url_for()函数时,尽量使用关键字参数指定路由参数,而不是直接传递参数值。例如:

# 不推荐做法
url_for('show_user', 123)

# 推荐做法
url_for('show_user', user_id=123)
  • 路由重复

在定义路由时,需要确保不会出现重复的路由。如果出现重复路由,可能会导致某些路由无法正常工作。

为了避免这种问题,建议使用不同的URL模式和HTTP方法来区分不同的路由。另外,在使用蓝图组织路由时,也需要注意路由名称的唯一性。

  1. 总结

路由和视图函数是Flask中最核心的组成部分之一。通过合理地设计路由和视图函数,可以快速构建Web应用程序,并实现各种功能,如动态路由、请求处理、页面渲染、路由重定向等。

在本文中,我们深入探讨了Flask中路由和视图函数的概念、使用方法以及常见问题和解决方案。建议开发者在编写Flask应用程序时充分利用路由和视图函数的功能,以提高开发效率并优化用户体验。

模板和静态文件

Flask是一个灵活、易用的Web框架,支持使用模板和静态文件来构建Web应用程序。在本文中,我们将深入探讨Flask中模板和静态文件的概念、使用方法以及常见问题和解决方案。

  1. 什么是模板?

在Web应用程序中,通常需要将数据动态地渲染到HTML页面中。为了实现这一功能,可以使用模板引擎来生成HTML代码。

在Flask中,默认使用Jinja2作为模板引擎。Jinja2是一个Python模板引擎,具有强大的功能和灵活的语法,可以轻松地生成各种类型的文本文件。

在Flask中,可以使用render_template()函数来加载并渲染模板。例如:

from flask import Flask, render_template

app = Flask(__name__)

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

在上面的代码中,使用了render_template()函数加载名为“index.html”的模板,并返回渲染后的HTML代码。

在模板中,可以使用特定的语法来插入变量、循环迭代、条件判断等。例如:

<!DOCTYPE html>
<html>
<head>
	<title>{{ title }}</title>
</head>
<body>
	<h1>Hello, {{ name }}!</h1>
	
	{% if user %}
		<p>Welcome, {{ user }}!</p>
	{% else %}
		<p>Please login.</p>
	{% endif %}
	
	<ul>
	{% for item in items %}
		<li>{{ item }}</li>
	{% endfor %}
	</ul>
</body>
</html>

在上面的代码中,使用了Jinja2模板语法插入变量、条件判断和循环迭代。当模板被渲染时,Jinja2会将这些语法转换为对应的Python代码,并根据传递的参数动态生成HTML页面。

  1. 模板继承

在实际开发中,通常需要共享部分页面结构和样式。为了避免重复编写相同的HTML代码,可以使用模板继承来复用代码。

在Flask中,可以使用extends关键字指定模板继承。例如:

{% extends "base.html" %}

{% block title %}
	Home - {{ super() }}
{% endblock %}

{% block content %}
	<h1>Welcome to my website!</h1>
	<p>This is the home page.</p>
{% endblock %}

在上面的代码中,使用了extends关键字指定继承自名为“base.html”的基础模板。其中,{% block %}标签用于定义子模板中可替换的内容,{{ super() }}用于调用父模板中对应的内容。

  1. 静态文件

除了动态生成的HTML页面外,Web应用程序通常还需要使用静态文件,如CSS、JavaScript、图片等。在Flask中,可以使用url_for()函数生成静态文件的URL,然后在HTML页面中引用。

在Flask应用程序中,通常将静态文件放置在/static目录下。例如,如果需要使用名为“style.css”的CSS文件,可以使用以下代码在HTML页面中引用:

<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}">

在上面的代码中,使用了url_for()函数生成名为“style.css”的静态文件的URL,并将其作为href属性值赋给<link>标签,以便浏览器能够正确加载和显示该文件。

  1. 常见问题和解决方案

在使用Flask的模板和静态文件时,可能会遇到一些常见问题。下面列出了一些常见问题和相应的解决方案。

  • 模板文件无法找到

当使用render_template()函数加载模板时,可能会出现找不到模板文件的情况。这通常是因为未正确指定模板的路径或文件名。

为了避免这种问题,建议将模板文件放置在应用程序的templates目录下,并确保在调用render_template()函数时指定正确的模板名称。例如:

from flask import Flask, render_template

app = Flask(__name__)

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

在上面的代码中,假设将模板文件“index.html”放置在应用程序的templates目录下。当用户访问根路径时,Flask将自动查找并渲染该模板文件。

  • 静态文件无法加载

当使用url_for()函数生成静态文件的URL时,可能会出现无法加载静态文件的情况。这通常是因为未正确指定静态文件的路径或文件名。

为了避免这种问题,建议将静态文件放置在应用程序的static目录下,并确保在在HTML页面中正确引用静态文件的URL。例如:

<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}">

在上面的代码中,假设将CSS文件“style.css”放置在应用程序的static目录下。使用url_for()函数生成该文件的URL,然后在HTML页面中引用该URL即可加载和显示该文件。

  • 模板继承错误

在实现模板继承时,可能会出现父模板或子模板中的语法错误。这通常是因为未正确使用{% block %}标签或未正确调用{{ super() }}函数。

为了避免这种问题,建议在使用模板继承时遵循Jinja2模板语法规范,并确保在子模板中正确定义和替换父模板中的内容。例如:

{% extends "base.html" %}

{% block title %}
    Home - {{ super() }}
{% endblock %}

{% block content %}
    <h1>Welcome to my website!</h1>
    <p>This is the home page.</p>
{% endblock %}

在上面的代码中,使用了{% block %}标签定义可替换的内容,并使用{{ super() }}函数调用父模板中对应的内容。当模板被渲染时,Jinja2会将这些语法转换为对应的Python代码,并根据传递的参数动态生成HTML页面。

  1. 总结

在本文中,我们深入探讨了Flask中模板和静态文件的概念、使用方法以及常见问题和解决方案。

通过合理地使用模板和静态文件,可以轻松地构建Web应用程序,并实现各种功能,如动态生成HTML页面、共享页面结构和样式、加载CSS和JavaScript文件等。

建议开发者在编写Flask应用程序时充分利用模板和静态文件的功能,以提高开发效率并优化用户体验。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux系统下如何调试C/C++程序【越早知道越好】

前言 研发语言是C或者C的小伙伴&#xff0c;无论是从事服务端开发&#xff0c;还是客户端开发&#xff0c;都需要掌握linux系统下关于C/C代码的调试能力。 正文 入门示例 首先&#xff0c;我们通过一段存在问题的代码来演示整个调试过程以及问题分析定位的方法和手段。 示例代码…

如何使用 ChatGPT 生成 Stable diffusion 提示词

chatgpt免费体验入口网址&#xff1a; http://chat.xutongbao.top 一、教chatgpt写提示词 StableDiffusion是一款利用深度学习的文生图模型&#xff0c;支持通过使用提示词来产生新的图像&#xff0c;描述要包含或省略的元素。 我在这里引入StableDiffusion算法中的Prompt概念…

mysql 8.0安装全过程(linux上二进制包安装,非root用户)

目录 介绍 安装 0、删除随系统安装的mariadb 1、下载 2、解压 3、创建用户 4、创建数据目录 5、核心启动配置文件 6、安装依赖 7、初始化mysql文件 8、启动服务 9、配置环境变量 10、改root登录密码 可能遇到错误&#xff1a; 1&#xff09; libaio.so.1 缺少 2…

ASP.NET Core MVC 从入门到精通之HttpContext

随着技术的发展&#xff0c;ASP.NET Core MVC也推出了好长时间&#xff0c;经过不断的版本更新迭代&#xff0c;已经越来越完善&#xff0c;本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容&#xff0c;适用于初学者&#xff0c;在校毕业生&#xff0c…

kafka常见问题QA(六)

六、常见问题QA 6.1 无消息丢失如何配置 producer 调用方式 &#xff08;1&#xff09;网络抖动导致消息丢失&#xff0c;Producer 端可以进行重试。 &#xff08;2&#xff09;消息大小不合格&#xff0c;可以进行适当调整&#xff0c;符合 Broker 承受范围再发送。 不要使用…

【Linux Network】网络编程套接字

目录 1. 源IP地址与目的IP地址的认识 2. 端口号的认识 3. 套接字socket 4. TCP协议和UDP协议 5. 网络字节序 6. socket编程 7. socket编程接口 8. 使用UDP协议跨网络通信程序 Linux网络编程✨ 1. 源IP地址与目的IP地址的认识 在因特网上&#xff0c;一台主机和一个IP地址往往是…

【VM服务管家】VM4.2平台SDK_6.1 环境配置类

目录 2.1.1 环境配置&#xff1a;基于Csharp二次开发环境配置方法2.1.2 环境配置&#xff1a;基于MFC二次开发环境配置方法2.1.3 环境配置&#xff1a;基于Qt二次开发环境配置方法2.1.4 用户权限&#xff1a;普通以EXE方式启动Server的方法2.1.5 环境配置&#xff1a;程序启动后…

基于类别级正则化的无监督域自适应眼底图像分割

文章目录 Unsupervised Domain Adaptive Fundus Image Segmentation with Category-Level Regularization摘要方法Inter-domain Category RegularizationSource Domain Category RegularizationTarget Domain Category Regularization总损失 Unsupervised Domain Adaptive Fund…

总结目前敏捷开发框架(持续更新....)

文章目录 0 敏捷开发1 类型分类1.1. Scrum1. 2.极限编程&#xff08;XP&#xff09;1. 3. 快速应用程序开发 (RAD)1. 4. 动态系统开发方法&#xff08;DSDM&#xff09;1.5.统一流程&#xff08;UP&#xff09;1. 6. 精益方法1. 7. 看板1. 8.FDD&#xff08;功能驱动开发&#…

2023年最新版【接口自动化测试,web自动化测试,app自动化测试】全套自动化测试面试题

前言&#xff1a; 自动化测试是软件测试中的一个重要领域&#xff0c;它可以帮助企业提高软件开发质量、缩短测试周期和降低测试成本。随着信息技术的不断发展&#xff0c;自动化测试也在不断地创新和发展。本篇文章收集了2023年最新版的接口自动化测试、Web自动化测试和App自…

通俗理解CNN感受野的计算方法

x o u t x i n − k s 1 x_{out} \frac{x_{in} - k}{s} 1 xout​sxin​−k​1 如果不考虑padding&#xff0c;卷积输出的feature map的计算公式如上&#xff0c;那么 x i n ( x o u t − 1 ) ∗ s k x_{in} (x_{out} - 1) * s k xin​(xout​−1)∗sk。因此计算模型的感…

springbooot使用google验证码

springbooot使用google验证码 1、使用场景2、springboot使用google验证码1、引入依赖2、编写配置类3、编写控制层4、前端实现 1、使用场景 由于需要做一个前后端分离的项目&#xff0c;想着使用google验证码&#xff0c;由于年龄大了&#xff0c;这些知识啊&#xff0c;用完就…

防伪标志使用的全息薄膜,竟可合成大自然的“结构色”

大自然为生物赋予了各种各样的色彩&#xff0c;除了常见的赤橙黄绿青蓝紫外&#xff0c;还有反光效果很好的金属色等等。有趣的是&#xff0c;一些生物身上的颜色也能像金属那样闪闪发光&#xff0c;在不同光线下颜色甚至还会有变化。实际上&#xff0c;大自然很多色彩由色素产…

全注解下的SpringIoc 续6-多环境配置

我们都知道&#xff0c;在企业开发过程中&#xff0c;一个项目往往都会有开发、测试、仿真、生产等环境配置&#xff0c;除了使用配置中心&#xff08;比如Apollo等&#xff09;之外&#xff0c;Spring Boot也提供了不同环境之间切换的机制&#xff0c;下面让我们来一起看看。 …

Docker安全最佳实践

目录 1、探测容器开放端口和服务漏洞 2、宿主机、网络、镜像、DockerApi安全 3、更新Docker、日志、事件 4、Docker安全测试 5、Docker安全最佳实践 1、探测容器开放端口和服务漏洞 使用Nmap扫描Docker容器中的开放端口 使用docker ps命令获取正在运行的容器ID或名称。在…

密码学作业——置换密码部分

part1: encrypt加密函数_代码补充&#xff1a; /*请在此处添加*/cout<<Substition[plain[i]]; part2:Decrypt解密函数_代码补充: /*请在此处添加代码*/ cout<<ReverseTable[cipher[i]];part3:设置 转换表Substition[]部分: // 将i对应的置换表元素设为s1中对应…

prometheus实战之三:告警规则

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文是《prometheus实战》系列的第三篇&#xff0c;一起来学习prometheus的告警功能&#xff0c;如下图所示&#xff0c;整个告警功能分为规则和通…

Python使用AI animegan2-pytorch制作属于你的漫画头像/风景图片

Python使用AI animegan2-pytorch制作属于你的漫画头像 1. 效果图2. 原理3. 源码参考 git clone https://github.com/bryandlee/animegan2-pytorch cd ./animegan2-pytorch python test.py --photo_path images/photo_test.jpg --save_path images/animegan2_result.png1. 效果图…

全球首个机器人辅助试管婴儿降生

近日&#xff0c;两名通过机器人辅助受精手术成功诞生的女婴成为全球瞩目的焦点。这是全球首批由机器人成功辅助受精的婴儿案例&#xff0c;预示着未来生育技术的发展趋势。 以往&#xff0c;试管婴儿受精过程中将精子注入卵子内的环节都是由人工完成。胚胎技术人员需要在显微镜…

最简单的循环

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C语言和数据结构 &#x1f33c;博客专栏&#xff1a;C语言学习 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4aa;&am…