注:在整个安装过程中最最最重要的步骤就是给每个包安装器换源,阿里源经常报错不建议用
1.python 安装后就有pip,所以第一步是给pip换源
##清华大学
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
其他镜像源可参考 pip国内镜像源
2.下载pipx
pip install pipx
安装完后如过有提示请选择Y,应该是是否注入环境变量的提示,如果是的话可以省去配置环境变量的操作
注意记录输出提示中的路径,配置环境变量是需要用到
3.安装完后关掉当前控制台重新开一个输入 pipx 正确输出pipx命令列表则跳过环境变量配置,如果提示 'pipx' 不是内部或外部命令,也不是可运行的程序或批处理文件则继续下一步配置环境变量
4.配置pipx环境变量
找到pipx可执行文件的位置,在2步骤中有记录的就是
一般在 C:\Users\用户\AppData\Local\Programs\Python\Python312\Scripts\ 下
将对应的地址粘贴至环境变量配置的path中(不要复制上面的,每个人电脑用户名是你自己取的)
环境变量配置:右键我的电脑/此电脑 -> 属性 -> 高级系统设置(最下面/最右侧) ->环境变量
配置后点击所有弹出窗口的确认按钮
5.重复步骤3
6.将 pipx 安装的包的可执行文件地址加入环境变量,pipx安装::pdm)不用额外配置环境变量
pipx ensurepath
7.安装pdm
pipx install pdm
8.pdm 更换pypi源
pdm config pypi.url https://pypi.tuna.tsinghua.edu.cn/simple
其他 pypi 镜像源
9.初始化一个项目,先创建项目空文件夹,cd至文件然后执行
pdm init
- 选择python版本-会显示全部,选择自己安装的
-
项目是可安装的库吗?如果是,我们需要再问几个问题,包括项目名称和生成后端[y/n] -小白按回车就对了
- License 类型
- 作者信息
- 邮箱信息
- 依赖的 Python 版本
普通项目选择好python版本后一直回车就好
10.使用PyCharm打开项目
打开后右下角有Python解释器配置提示,一般来说会自动获取到项目下的 .venv 目录,直接点确认就行,不放心可以在右上角设置 -> 项目 -> Python解释器中查看和配置,不是项目下的话,点击添加本地解释器->选择现有 -> 选择项目目录下.venv/Scripts/Python.exe
11.安装 web.py
pdm add web.py
12. 在 __init__.py 文件中写入官方示例
import web
urls = (
'/', 'index'
)
class index:
def GET(self):
return "Hello, world!"
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
13.在 pyproject.toml 配置命令别名
在pyproject.toml末尾追加 [tool.pdm.scripts]
127.0.0.1 是为 web.py 启动定义地址,不定义是 0.0.0.0 基本无法访问
[tool.pdm.scripts]
start = 'pdm run src/init文件上层文件夹没有可去掉/__init__.py 127.0.0.1'
14.启动项目
点击左下角的终端工具输入运行命令
pdm run start
访问控制台输出地址 http://127.0.0.1:8080 即可看见页面输出Hello,Word!
----- 下面是数据库相关的 mysql + pymysql ------
15.安装pymysql
pdm add pymysql
16.安装 cryptography
高版本MySQL默认带密码加密/验证需要这个工具才能正确连接
pdm add cryptography
'在 __init__.py 同级目录下新建 DataBase 目录
16.在DataBase目录下新建数据库访通用文件 config.py
import web
"兼容web.py"
import pymysql
pymysql.install_as_MySQLdb()
"""创建数据库对象"""
db = web.database(dbn='mysql', user='user', pw='root', db='wndb')
"""数据库结果列表转list方法"""
def dbList2Json(list):
ret = []
for k, v in enumerate(list):
obj = {}
for k1, v1 in enumerate(v):
obj[v1] = v[v1]
ret.append(obj)
return ret
17.在DataBase目录下新建表查询文件我是user表新建 user.py
注:sys.path.append 必须写,是为了将项目路径加入运行环境中,防止import找不到我们自建的module
import sys
import os
# 把项目文件夹的父文件夹路径加入到PYTHONPATH,注意这里os.path.dirname嵌套的层数
# 从项目文件夹(包括)到config是多少层文件夹就要套多少层
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
# 注意会报错的这个引入必须要在sys.path.append后面写
# 引入路径必须是绝对引入即 src. 开头
from src.DataBase.config import db, dbList2Json
def getUsers():
users = db.select('user')
return dbList2Json(users)
18.调整__init__.py 文件
import json
import web
from DataBase import user
urls = (
'/', 'index'
)
class index:
def GET(self):
users = json.dumps(user.getUsers())
print(users)
return response(users)
"""运行"""
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
"""定义response方法用于统一设置响应头"""
def response(data):
web.header('Access-Control-Allow-Origin', '*')
web.header('Content-Type', 'application/json;charset=UTF-8;')
return data
pdm run start 执行即可
ok!一个使用pdm管理的Python+web.py项目就搭建好了,
初学python的人搞这些真的非常花时间,几个安装器不换源要么是一直转圈要么是报错,一直在找为什么错,很费时间精力,pdm 已有教程又不详细,希望这篇文章可以帮到入门小白