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

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

在这里插入图片描述

预计更新

第一章. 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 Flaskapp = Flask(__name__)@app.route('/')
def hello_world():return 'Hello, World!'

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

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

from flask import Flaskapp = 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_templateapp = 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, requestapp = 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 Flaskapp = 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_forapp = 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_forapp = 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 Blueprintusers_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 Flaskapp = 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_templateapp = 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_templateapp = 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_templateapp = 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应用程序时充分利用模板和静态文件的功能,以提高开发效率并优化用户体验。

相关文章:

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

预计更新第一章. Python 简介 Python 简介和历史Python 特点和优势安装 Python 第二章. 变量和数据类型 变量和标识符基本数据类型&#xff1a;数字、字符串、布尔值等字符串操作列表、元组和字典 第三章. 控制语句和函数 分支结构&#xff1a;if/else 语句循环结构&#…...

配置本地Angular环境并使用VsCode调试Angular前端项目

配置本地Angular环境并使用VsCode调试Angular前端项目 配置本地Angular环境部署Node.Js本地环境配置一下环境变量 使用vscode调试Angular安装vscode 配置本地Angular环境 部署Node.Js本地环境 1 从官网下载node.js, 本文为(v16.13.0) 下载地址: https://nodejs.org/dist/v16.…...

100ASK_全志V853-PRO开发板支持人形检测和人脸识别

1.前言 V853 芯片内置一颗 NPU核&#xff0c;其处理性能为最大 1 TOPS 并有 128KB 内部高速缓存用于高速数据交换&#xff0c;支持 OpenCL、OpenVX、android NN 与 ONNX 的 API 调用&#xff0c;同时也支持导入大量常用的深度学习模型。本章提供一个例程&#xff0c;展示如何使…...

简单实现基于UDP与TCP的回显服务器

目录 前言UDP 版的回显服务器需要用到的 api服务端客户端UDP 版本的字典客户端和字典服务器 TCP 版的回显服务器需要用到的 api服务器客户端对服务器进行改进(使用线程池)TCP 版本的字典客户端和字典服务器 前言 我们写网络程序, 主要编写的是应用层代码. 真正要发送这个数据,…...

家用洗地机有什么推荐的吗?家用洗地机哪款好

洗地机是创新、高效的清洁工具&#xff0c;其具有高性能的清洁能力和卓越的操作体验。与传统的清洁工具相比&#xff0c;洗地机可以迅速而彻底地打扫地面&#xff0c;降低清洁时间和人力成本&#xff0c;让我们在工作之余不用花费大量的时间和精力去打扫卫生&#xff0c;下面就…...

深度学习与文本聚类:一篇全面的介绍与实践指南

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

AP5153 线性降压恒流驱动芯片 2.5A

AP5153 是一种 PWM 调光的、低压 差的 LED 线性降压恒流驱动器。 AP5153 仅需要外接一个电阻和一个 NMOS 管就可以构成一个完整的 LED 恒 流驱动电路&#xff0c; 调节该外接电阻就可以调节 输出电流&#xff0c;输出电流可调范围为 20mA 到 3.0A。 AP5153 还可以通过在 DIM…...

Unity物理系统脚本编程(下)

一、修改物理材质 Unity对物体表面材料的性质做了件化处理&#xff0c;仅有5种常用属性&#xff1a; Dynamic Friction&#xff08;动态摩擦系数&#xff09;Static Friction&#xff08;静态摩擦系数&#xff09;Bounciness&#xff08;弹性系数&#xff09;Friction Combine…...

容器技术的发展

容器技术的发展 近年来&#xff0c;随着计算机硬件、网络以及云计算等技术的迅速发展&#xff0c;云原生的概念也越来越受到业界人士的广泛关注&#xff0c;越来越多的应用场景开始拥抱云原生&#xff0c;其中容器技术的发展起着至关重要的作用。本章将介绍容器技术的基础知识…...

Python Flask request中常见存储参数的介绍

Python Flask request中常见存储参数的介绍 首先从flask模块中导入请求对象&#xff1a; from flask import requestrequest.form 通过method属性可以操作当前请求方法&#xff0c;通过使用form属性处理表单数据&#xff08;本质也是得到一个字典&#xff0c;如果传输的是字…...

php+vue网盘系统的设计与实现

该网盘系统的开发和设计根据用户的实际情况出发&#xff0c;对系统的需求进行了详细的分析&#xff0c;然后进行系统的整体设计&#xff0c;最后通过测试使得系统设计的更加完整&#xff0c;可以实现系统中所有的功能&#xff0c;在开始编写论文之前亲自到图书馆借阅php书籍&am…...

[前端]深浅拷贝

一、回顾变量类型 基础类型 boolean&#xff08;bool&#xff09; number string null undefined 引用类型 object ​ function ​ array 基本类型与引用类型的存储 基本类型一般存储在 栈 (栈小) 栈一旦确认 大小就固定 可能会造成溢出栈一般是先进后出用于存储…...

文章纠错免费软件-文字校对软件免费下载

自动校对稿件的软件 自动校对稿件的软件是一种基于自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;和机器学习&#xff08;Machine Learning&#xff09;技术的工具&#xff0c;可以较为准确地检测和纠正文本中出现的语法、拼写、标点符号以及其他笔误…...

【Redis】Redis缓存雪崩、缓存穿透、缓存击穿(热key问题)

目录 一、缓存穿透 1、概念 2、解决办法 1.缓存空对象 2.布隆过滤 二、缓存雪崩 1、概念 2、解决办法 1.给key设置随机的过期时间TTL 2.业务添加多级缓存 3.利用集群提供服务可用性 4.缓存业务添加降级限流 三、缓存击穿 1、概念 2、解决办法 1.互斥锁 2.逻辑…...

为什么很多程序员喜欢linux系统?

a> Linux哪些行业在运用&#xff1f; Linux系统运用极其广泛&#xff0c;不少用户只知道windows&#xff0c;是因为&#xff0c;Linux的运用主要是在企业端。现在科技极其发达&#xff0c;我们手机在手&#xff0c;就能干很多事情&#xff0c;只需点一点屏幕&#xff0c;轻松…...

Bean 作用域和生命周期

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录 lombok的使用案例引入作用域定义singleton单例作用域prototype原型作用域(多例作用域)request请求作用域session会话作用域ap…...

PMP考试常见13个固定套路

一、变更批准之后 变更批准后要做三件事: 1、在变更日志中记录 2、通知相关干系人 3、更新项目管理计划 二、风险的情景题 1、先判断风险识别了&#xff0c;还是风险发生了。 2、若是风险识别&#xff0c;按风险管理程序走; 3、若是风险发生&#xff0c;则应采取应急措施…...

Leecode101 ——对称二叉树

对称二叉树:Leecode 101 leecode 101 对称二叉树 根据题目描述&#xff0c;首先想清楚&#xff0c;对称二叉树要比较的是哪两个节点。对于二叉树是否对称&#xff0c;要比较的是根节点的左子树与根节点的右子树是不是相互翻转的&#xff0c;其实也就是比较两个树&#xff0c;…...

JVM学习随笔03——Java堆中new一个对象的步骤

目录 一、进行类加载 二、堆中分配内存 1、怎么输出GC日志&#xff1a; 2、内存分配的两种方式&#xff1a; 3、内存分配过程中并发控制的两种方式&#xff1a; 三、内存空间初始化 四、对象头初始化&#xff08;对象头包含哪些信息&#xff1f;&#xff09; 五、执行构…...

虹科方案 | CEMEX 使用HK-Edgility 智能边缘计算平台简化其企业 WAN 管理和运营

一、应对价值 130 亿美元的跨国企业的网络挑战 “我们选择 Edgility 是因为其卓越的管理和协调功能&#xff0c;它为我们提供了一个端到端的工具集&#xff0c;可以经济高效地部署和管理我们边缘设备的生命周期。” —— Fernando Garcia -Villaraco Casero, CEMEX 全球IT 战略…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...

游戏开发中常见的战斗数值英文缩写对照表

游戏开发中常见的战斗数值英文缩写对照表 基础属性&#xff08;Basic Attributes&#xff09; 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...

拟合问题处理

在机器学习中&#xff0c;核心任务通常围绕模型训练和性能提升展开&#xff0c;但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正&#xff1a; 一、机器学习的核心任务框架 机…...

python打卡第47天

昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图&#xff0c;展示模…...

LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考

目录 lua脚本 记录流水 记录流水的作用 流水什么时候删除 我们在做库存扣减的时候&#xff0c;显示基于Lua脚本和Redis实现的预扣减 这样可以在秒杀扣减的时候保证操作的原子性和高效性 lua脚本 // ... 已有代码 ...Overridepublic InventoryResponse decrease(Inventor…...