Alembic - 用于 SQLAlchemy 的数据库迁移工具

Alembic 是SQLAlchemy的作者编写的数据库迁移工具。 安装配置 pip install alembic #初始化 alembic init {指定目录,比如 alembic } 配置 将alembic.ini中的sqlalchemy.url改为你数据库地址:sqlalchemy.url = sqlite:///./database/app.sqlite3 迁移脚本 https://alembic.sqlalchemy.org/en/latest/tutorial.html#create-a-migration-script #创建 alembic revision -m "c...

sqlalchemy的基本使用

SQLAlchemy 是 Python 的 SQL 工具包和 ORM 框架 安装 pip install SQLAlchemy 封装 #path: core/db/sqlite.py from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker #数据库访问地址 SQLALCHEMY_DATABASE_URL = "sqlite:///./database/app.sqlite3" ...

Laravel CSRF 保护

跨站点请求伪造(英语:Cross-site request forgery)是一种恶意利用,利用这种手段,代表经过身份验证的用户执行未经授权的命令。值得庆幸的是,Laravel 可以轻松保护您的应用程序免受跨站点请求伪造(CSRF)攻击。 漏洞的解释 如果您不熟悉跨站点请求伪造,我们讨论一个利用此漏洞的示例。假设您的应用程序有一个 /user/email 路由,它接受 POST 请求来更改经过身份验证用户的电子邮件地址。最有可能的情况是,此路由希望 email 输入字段包含用户希望开始使用的电子邮件地址。 没有 CSRF 保护,恶意网站可能会创建一个 HTML 表单,指向您的应用程序 /use...

python 虚拟环境venv、pipenv、poetry、conda如何选择?

Install Poetry curl -sSL https://install.python-poetry.org | python3 - https://python-poetry.org/docs/#installing-with-the-official-installer 别名 cuiwei@weideMacBook-Pro ~ % cat ~/.bashrc alias poetry='~/.local/bin/poetry' 区别 virtualenv 太老,除非你还在使用python 2,否则不推荐。 venv python自带的虚拟环境管理,简单是它的优势,也是它的劣势。...

laravel 自定义中间件实现身份验证

通过Laravel 用户认证我们知道了基于 api 的身份验证,实现方式有Laravel Sanctum API 授权 、 Laravel 使用 Json Web Token(JWT) 等,今天介绍一下自定义中间件实现身份验证 中间件 使用中间件需要提前在app/Http/Kernel.php这里配置,分为全局中间件、中间件、中间件组 全局中间件 全局中间件无需主动调用,系统会自动应用到每次请求。比如:TrimStrings中间件会自动去掉请求参数左右两边的空格;ConvertEmptyStringsToNull中间件会自动把请求参数中的空字符串转为 null。 ConvertEmptyStr...

laravel 以服务提供者的方式使用 elasticsearch

安装 安装elasticsearch官方扩展包 composer require elasticsearch/elasticsearch 以服务提供者的方式使用 elasticsearch 可以参考这篇文章:Laravel 以服务提供者的方式使用第三方扩展包 下面给出关键配置 config/es.php <?php declare(strict_types=1); return [ 'hosts' => explode(',', env('ELASTIC_HOSTS')),//['http://elasticsearch:9200'] 'username' => env(...

初步分析 Elasticsearch 文档

Query DSL Elasticsearch提供基于JSON的完整查询DSL(Domain Specific Language)来定义查询。 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html 例如: GET /_search { "query": { "bool": { "must": [ { "match": { "title": "Search" }}, { "match": { "content": "...

Laravel 使用 Json Web Token(JWT)

关于 JWT 之前写过 php - Json Web Token(JWT)的使用 go - gin 使用 Json Web Token(JWT) 今天总结下 Laravel 中 JWT 的使用 安装 composer require tymon/jwt-auth #发布配置 php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider" #生成密钥,这将更新您的.env文件,例如JWT_SECRET=foobar php artisan jwt:secret 快速开始 更新你的...

Laravel Sanctum API 授权

Laravel Sanctum 为 SPA(单页应用程序)、移动应用程序和基于令牌的、简单的 API 提供轻量级身份验证系统。Sanctum 允许应用程序的每个用户为他们的帐户生成多个 API 令牌。这些令牌可以被授予指定允许令牌执行哪些操作的能力 / 范围。 简单来说,前后端分离的项目,使用 token 验证登陆状态,可以选它;另外,同类型的还有 jwt 比较火 安装 Laravel 9 已经包含了 Laravel Sanctum,所以下面的步骤看看就行了 composer require laravel/sanctum php artisan vendor:publish --prov...

Laravel 表单验证失败跳首页的解决办法

首先,官方不觉得这是一个问题 如果在传统 HTTP 请求期间验证失败,则会生成对先前 URL 的重定向响应。如果传入的请求是 XHR,将将返回包含验证错误信息的 JSON 响应。 https://learnku.com/docs/laravel/9.x/validation/12219#quick-writing-the-validation-logic 问题复现 cuiwei@weideMacBook-Pro ~ % curl -X POST 'http://laravel.cw.net/api/login' \ --header 'Content-Type: application/js...