1
0
mirror of https://github.com/apachecn/lmpythw-zh.git synced 2025-06-05 08:51:25 +00:00
This commit is contained in:
wizardforcel 2017-08-15 16:22:14 +08:00
parent f252767b54
commit 826a0da894

@ -18,8 +18,8 @@
你在 ORM 中应实现的一些主要功能有:
+ 从外部传递字符串到 ORM 应该是安全的。如果你使用 F 字符串来制作你的 SQL那么你就错了。原因是如果你执行`f"SELECT * FROM {table_name}`,那么有人可以从外部将`table_name`设置为SQL例如`person; DROP TABLE person`。你的数据库很可能以这种方式运行,销毁所有内容或更糟。有些数据库甚至允许你在 SQL 中运行系统命令这被称为“SQL 注入”,你不应该在 ORM 中引入它。
+ 所有的 CRUD 操作但在Python。我建议你跳过`CREATE TABLE`部分,直到你让其他的一切正常工作。简单的`INSERT``SELECT``UPDATE``DELETE`是易于制作的,但是从类定义创建数据库纲要涉及到一些主流的 Python 黑魔法,使其真正有效。使用手工制作的`.sql`文件创建你的数据库,然后一旦让其他东西正常工作,你可以尝试纲要系统来替换`.sql`文件。
+ 从外部传递字符串到 ORM 应该是安全的。如果你使用 F 字符串来制作你的 SQL那么你就错了。原因是如果你执行`f"SELECT * FROM {table_name}`,那么有人可以从外部将`table_name`设置为 SQL例如`person; DROP TABLE person`。你的数据库很可能以这种方式运行,销毁所有内容或更糟。有些数据库甚至允许你在 SQL 中运行系统命令这被称为“SQL 注入”,你不应该在 ORM 中引入它。
+ 所有的 CRUD 操作,但在 Python 中实现。我建议你跳过`CREATE TABLE`部分,直到你让其他的一切正常工作。简单的`INSERT``SELECT``UPDATE``DELETE`是易于制作的,但是从类定义创建数据库纲要涉及到一些主流的 Python 黑魔法,使其真正有效。使用手工制作的`.sql`文件创建你的数据库,然后一旦让其他东西正常工作,你可以尝试纲要系统来替换`.sql`文件。
+ 将 Python 类型匹配到 SQL 类型以及新类型,来处理 SQL 类型。你可能会发现,你必须做一些杂技,将 Python 数据类型放到 SQL 表中。也许这太痛苦了,所以你最终会自己制作数据类型。这就是 Django 做的事情。
+ 事务是一个高级话题,但如果你可以实现它就试一试。