For My First Blog

作者反思了毕业后一年的工作经历,意识到技术进步缓慢,决定通过撰写博客来促进个人成长和技术积累。计划每天记录学习心得,不仅限于技术文章,还包括转载和消化后的思考。

  第一遍博客,对自己说点什么吧。

  毕业1年多了, 最大的感觉就是技术没有什么大的长进,无非就是代码熟练了点, 项目经验多了点。想想真是可悲, 韶光易逝,自己却迈不开步子,唉。

  期间我也迷茫过,觉得自己真的适合开发这种职业,但是想来想去,却没有发现适合自己的别的职业,也想尝试着白天工作,业余学点别的东西,比如金融啦,各种各样的,但是还没做就自己把这种想法扼杀在脑子里了,因为结合自己的职业,学习任何东西都不会学习技术来的快,本来自己就蛮熟悉的,可是经常看论坛上各种技术毁一生之类的帖子,心中虽是将信将疑,但还是将其当个笑话,为什么呢,自己没有经历过嘛,谁说的我也不会相信的。心中抱着学习技术终究应该是行的吧的“憧憬”,我觉得一条路走到黑!

  今天在这开了博客,要求自己每天都写一些东西,没必要篇篇都是技术性文章,估计自己也没那能耐,多半也就是学习转载,然后自己消化之后写一点。

  嗨,罗哩罗嗦这些文字,感觉自己逻辑思维好混乱啊,囧~~好了,the first blog就到这了,嘿嘿,记住没有谁能随随便便成功!人前风光,人后都是苦逼的奋斗青年啊~

Traceback (most recent call last): File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1967, in _exec_single_context self.dialect.do_execute( ~~~~~~~~~~~~~~~~~~~~~~~^ cursor, str_statement, effective_parameters, context ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\sqlalchemy\engine\default.py", line 951, in do_execute cursor.execute(statement, parameters) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\pymysql\cursors.py", line 153, in execute result = self._query(query) File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) ~~~~~~~~~~^^^ File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\pymysql\connections.py", line 575, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\pymysql\connections.py", line 826, in _read_query_result result.read() ~~~~~~~~~~~^^ File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\pymysql\connections.py", line 1203, in read first_packet = self.connection._read_packet() File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\pymysql\connections.py", line 782, in _read_packet packet.raise_for_error() ~~~~~~~~~~~~~~~~~~~~~~^^ File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ File "D:\PythonProject\PythonProject\my_blog\.venv\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) p
11-01
在Python中,SQLAlchemy和PyMySQL执行SQL语句时可能会遇到不同类型的错误,以下是一些常见错误及对应的解决方案: ### 特殊字符问题 使用SQLAlchemy或者PyMySQL执行原始SQL语句时,VALUE中存在特殊字符,如引号、反斜杠等,可能会导致错误。可以使用`pymysql.escape_string`方法对特殊字符进行转义处理。 ```python import pymysql escaped_str = pymysql.escape_string("'") print(escaped_str) # 输出: "\\'" ``` ### SQL注入风险与拼接问题 PyMySQL通过拼接字符串的方式写好SQL语句然后执行,这种方式在SQL语句较长时不方便,且可能存在SQL注入的危险。可以使用参数化查询来解决这个问题。在SQLAlchemy中,可以使用`execute`方法并传入参数;在PyMySQL中,可以使用`execute`方法并传入参数列表。 #### SQLAlchemy示例 ```python from sqlalchemy import create_engine # 创建引擎 engine = create_engine('mysql+pymysql://root:password@127.0.0.1:3306/mydb') conn = engine.connect() # 执行参数化查询 query = "SELECT * FROM users WHERE name = :name" result = conn.execute(query, {'name': 'John'}) for row in result: print(row) ``` #### PyMySQL示例 ```python import pymysql # 连接数据库 conn = pymysql.connect(host='127.0.0.1', user='root', password='password', database='mydb') cursor = conn.cursor() # 执行参数化查询 query = "SELECT * FROM users WHERE name = %s" cursor.execute(query, ('John',)) results = cursor.fetchall() for row in results: print(row) # 关闭连接 cursor.close() conn.close() ``` ### 数据库连接问题 在使用SQLAlchemy连接数据库时,如果连接信息错误,可能会导致连接失败。确保数据库连接字符串正确,包括用户名、密码、主机地址、端口和数据库名。 ```python from sqlalchemy import create_engine # 正确的连接字符串示例 engine = create_engine('mysql+pymysql://root:lh334421@127.0.0.1:3306/myDataBase', echo=True) ``` ### 其他语法错误 仔细检查SQL语句的语法是否正确,包括表名、列名、关键字的拼写等。可以在数据库管理工具(如MySQL Workbench)中先测试SQL语句,确保语法无误后再在Python代码中执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值