了解如何在 Windows 11 上使用 Python Flask 应用程序连接到 Postgres 数据库。

扫码关注《Python学研大本营》,加入读者群,分享更多精彩

前期准备

  • 在Windows 机器上安装 Python3 并在 PATH 中设置

  • 要验证安装,只需在 Windows 开始菜单搜索栏中搜索 Python 3

1. 在 Windows 11 上安装 PostgresSQL

  • 在PostgreSQL 的下载页面获取 Windows 安装程序(https://www.postgresql.org/download/)

  • 使用默认值安装

  • 应该提示为 Postgres 安装的默认超级帐户选择密码。即 在这个postgres例子中用将使用 root 作为密码(这是一个非常糟糕的密码)

  • Postgres 使用哪个端口,可以使用默认的 5432

  • Postgres SQL 安装完成后,不需要运行 StackBuilder 获取其他插件

  • 现在应该可以在Windows 开始菜单搜索栏中搜索psql工具,这是shell CLI,可与 Postgres 数据库进行交互

  • 在启动 shell 时,可以选择要用于刚刚打开的 shell 连接的服务器、数据库、端口和用户; 这些字段预先填充了全新安装的值,只需输入在前面的步骤中选择的密码

  • 现在可以看到

2. 列出数据库

  • psql提供了方便的元命令以在数据库服务器上运行,例如 l,这将列出所有可用的数据库

  • 在输出的数据库中,应该看到 postgres, template0template1; 在运行 CREATE DATABASE 命令时实际使用模板数据库,因为它们将被复制以创建新数据库,但现在将使用默认的 postgres

3. 创建并运行 Flask 应用程序

Flask 是微框架,只有构建 Web 应用程序所需的最低限度的依赖项,这个最低限度包括:

  • 控制器

  • cookie 和会话管理

  • 路由

  • 网页开发服务器

  • 命令行界面

使用 IDE 创建新项目,在该项目的根目录中, app.py文件,为 Flask 应用程序放一些启动代码:

from flask import Flask# creates an application that is named after the name of the file
app = Flask(__name__)@app.route('/')
def index():return "it works"# if running this module as a standalone program (cf. command in the Python Dockerfile)
if __name__ == "__main__":app.run(host="0.0.0.0")

这只是说route / 在 localhost 上的 Flask 应用程序应该显示一些文本。 但要使其正常工作,需要使用 pip 安装 Flask 。

可以通过打开 CMD shell 并点击 pip install Flask. 现在,从刚刚打开的 CMD shell 中,可以用cd进入到项目创建的任何目录中。

Flask 应用程序需要知道如何加载应用程序,例如它的入口点是什么; 要指定,运行 set FLASK_APP=app.py. 如果想有更好的开发者体验,也可以点击 set FLASK_DEBUG=True. 现在可以使用 python -m flask run --host=0.0.0.0

4. 将 Flask 应用程序连接到数据库服务器

将使用 psycopg2,这是 Python 世界中最流行的 PostgresSQL 适配器。 首先在CMD 中安装 pip install psycopg2

现在可以更新app.py,示例代码如下。

from flask import Flask
import psycopg2# creates an application that is named after the name of the file
app = Flask(__name__)@app.route('/')
def index():conn = psycopg2.connect("postgresql://postgres:root@localhost:5432/postgres")return 'it works'# if running this module as a standalone program (cf. command in the Python Dockerfile)
if __name__ == "__main__":app.run(host="0.0.0.0")

字符串 postgresql://postgres:root@localhost:5432/postgres是数据库的数据源名称:

  • postgresql://, 连接方案

  • postgres:root, 用户+密码(使用默认的 postgres用户在这里)

  • @localhost:5432, 主机名及其端口

  • /postgres,连接到哪个数据库(同样,默认的)

可以通过以下方式检查是否在浏览器中已成功连接 localhost:5000; 例如,在 DSN 中输入另一个值作为密码,将在下次重新加载页面时看到一条错误消息。

5. 总结 + 后续步骤

现在,在这里所做的是一个非常基本的设置,可以开始在 Windows 环境中玩转 Flask。 现在可以在网络应用程序中运行 SQL 查询,例如 。

# Open a cursor to perform database operations
cur = conn.cursor()# Execute a query
cur.execute("SELECT * FROM my_data")# Retrieve query results
records = cur.fetchall()

现在拥有创建由数据支持的 Web 应用程序的最低限度的设置 :)

不过,一旦熟悉了这一点,如果想更进一步,建议采取以下步骤:

  • 使用 Windows WSL 能够在开发过程中运行更常用的 Linux 命令

  • 学习如何 Dockerize Flask 应用程序'

  • 使用像 SQLAlchemy 这样的 ORM 从 Web 应用程序中与数据库交互

新书推荐

《Flask Web全栈开发实战》

《Flask Web全栈开发实战》围绕 Flask 框架,详细地讲解了使用 Flask 开发网站的各项技术要点。全书共 11 章,首先讲解了Flask 项目开发中的环境搭建、项目配置、URL 与视图、Jinja2 模板、数据库、表单、Flask 进阶、缓存系统等。然后拓展了知识面,在项目实战中分别介绍了 RESTful API、邮箱验证码、Redis 缓存、Celery 异步任务、登录授权机制、角色权限管理、富文本编辑器、头像管理、文件上传以及 Nginx、Gunicorn 部署等技术要点;在 WebSocket 实战中讲解了 Flask 中使用 WebSocket 开发项目的全部过程。最后讲解了 Flask 异步编程。通过《Flask Web全栈开发实战》的学习,读者能够熟练掌握 Flask Web 开发技术。

《Flask Web全栈开发实战》适合没有 Flask 开发经验或者 Flask 基础比较薄弱、想要系统学习 Flask Web 开发技术的读者 学习。

从Flask基础到Flask进阶,再到企业级论坛项目实战以及WebSocket在线聊天系统实战,囊括真实工作场景中绝大部分技术要点。

购买链接:https://u.jd.com/XdOEuKL

精彩回顾

想用Python赚钱?——安排!

【案例】如何使用Flask构建天气预报

手把手教你创建简单的Python Flask

扫码关注《Python学研大本营》,加入读者群,分享更多精彩

手把手教你,Win11上如何使用Flask连接SQL 数据库相关推荐

  1. 保姆级教程!手把手教你使用Longhorn管理云原生分布式SQL数据库!

    作者简介 Jimmy Guerrero,在开发者关系团队和开源社区拥有20多年的经验.他目前领导YugabyteDB的社区和市场团队. 本文来自Rancher Labs Longhorn是Kubern ...

  2. 人生赚一个亿小目标难吗?手把手教你走上人生巅峰

    也许你还在感叹, 现在实业难做, 外贸不行, 投资风险大, 资金保值难. 也许你也三十而立, 或者养家糊口之年, 但是, 但是处于上下求索而不得的囧状. 看着别人谈笑风生的赚他一个亿的小目标, 你咽了 ...

  3. flutter如何访问mysql数据库_手把手教你在Flutter项目优雅的使用ORM数据库

    Flutter ORM数据库介绍 Flutter现在开发上最大的槽点可能就是数据库使用了,Flutter现在只提供了sqflite插件,这表明开发者手动写sql代码,建表.建索引.transation ...

  4. deepin中mysql数据库的连接_教你如何典雅的用Python连接MySQL数据库

    简介:作者 | Python语音识别不管是机器学习.web开发或者爬虫,数据库都是绕不过去的.那么今天我们就来介绍Python如何Mysql数据库进行连接以及数据的交换.主要分为以下几个方面:什么是数 ...

  5. python搭配什么数据库_教你如何优雅地用Python连接MySQL数据库

    作者 | Python语音识别 来源 | 深度学习与python(ID:PythonDC) 不管是机器学习.web开发或者爬虫,数据库都是绕不过去的.那么今天我们就来介绍Python如何Mysql数据 ...

  6. 干货福利!手把手教你获取上千张cosplay小姐姐的美照

    公众号关注 "菜鸟学Python" 设为 "星标",带你一起学Python! 最近的一段时间里,小编喜欢上了CosPlay的展出,小姐姐们的CosPlay展真的 ...

  7. 程序员宅男干货福利!手把手教你获取上千张cosplay小姐姐的美照

    最近的一段时间里,小编喜欢上了CosPlay的展出,小姐姐们的CosPlay展真的是让我很是欣赏,于是,我回到家里就从网上来看展出,但是一个个网页查看太过繁琐-- 既然是玩Python,不如写个代码搞 ...

  8. geodatabase怎么连接MySQL_实用帖-手把手教你如何上传GEO数据库

    点击进去如下图: 可以看见我们上传数据需要准备三个文件,分别为:Metadata spreadsheet.Processed data files.Raw data files.下面分别介绍每个文件如 ...

  9. 阿里云的oss看这一篇就够,手把手教你,上传下载速度再也不用愁了,个人网站速度太慢,一定要看!

    OSS对象存储是什么? 举个栗子,我的个人学生分享资源网站,用的是阿里的ESC服务器,给的宽带是1M,在这里普及一下宽带和下载的速度比是8:1,也就是最多只有100左右KB ,而且如果我把所有的资源文 ...

最新文章

  1. 各版本jdk下载地址
  2. matlab 树状链表,多级树集合分裂(SPIHT)算法的过程详解和Matlab实现(5)编码过程——精细扫描...
  3. Spring Boot 入门小目标 3 --- 先来试着热部署
  4. OAuth 2.0 Java指南:5分钟保护您的应用程序安全
  5. 微信生态下的营销洞察
  6. anaconda 安装在c盘_Tensorflow 2.1安装
  7. 大数据之-Hadoop之HDFS_HDFS的优缺点---大数据之hadoop工作笔记0049
  8. idea增加文件自动添加版本控制
  9. 图像检索:图像相似性度量
  10. HTML5截取视频第一帧作为预览图片
  11. python写一个自动在网页搜索资源并下载的程序
  12. 有哪些好用的低代码开发平台?
  13. 微软.Net离线语音识别
  14. 高等数学:第七章 空间解析几何(2)数量积 向量积 混合积 曲面及其方程
  15. matlab矩阵里面星号,矩阵中出现加号和星号 什么意思
  16. 国科大学习资料--人工智能原理与算法-第十四次作业解析(学长整理)
  17. 数学建模算法(1)—规划模型及其python实现
  18. Java咖啡馆(2)——第一杯咖啡
  19. ubuntu使用指南——root用户的设置、使用ssh远程登录、创建普通用户无法登录系统、远程重启或关闭服务器
  20. 使用计算机能佩戴老花镜,近视镜?远视镜?还是老花镜?——揭秘渐变多焦点眼镜的奥秘...

热门文章

  1. 数据标注基础知识:文本数据标注的类型及应用场景
  2. GIS是什么?『总览篇』
  3. HPROSE PRC通讯
  4. gbk, gb2312,big5,unicode,utf-8,utf-16的区别
  5. OC学习----设计模式
  6. 数据结构 图 思维导图上
  7. pygame开发2048游戏(附源代码)
  8. 舆情监测系统功能简介,网络舆情监测系统平台有哪些?
  9. 基于Stm32f407 的贪吃蛇小游戏【正点原子-探索者开发板】
  10. 到底要不要在office/wps平台上做开发