⑴ 如何对django 进行sql注入
1 用ORM 如果你发现不能用ORM 那么有可能是你不知道怎么用 请把实际情况发上来大家讨论
2 你坚信那种情况不能用ORM 且不需讨论 那么这不是一个django的问题 任何接受用户输入生成query操作数据库的程序都需要考虑防注入
相信在其他没有ORM的地方找答案会更容易!
⑵ django 原始sql怎么防止sql注入
方案一
总是使用Django自带的数据库API。它会根据你所使用的数据库服务器(例如PostSQL或者MySQL)的转换规则,自动转义特殊的SQL参数。这被运用到了整个Django的数据库API中,只有一些例外:
传给 extra() 方法的 where 参数。 (参考 附录 C。) 这个参数故意设计成可以接受原始的SQL。
使用底层数据库API的查询。
⑶ django中怎么动态操作数据库字段
django的ORM系统不支持修改删除字段的操作,也就是说你在写模型model文件的时候,比如说定义了这个user表,然后包含字段telphone定义,你一旦执行了manage.py syncdb 这个操作,就把表结构往数据库写死了,如果你之是删除了model文件的telphone,数据库是不被重新修改的。这个时候必须用原生SQL解决,也就是说自己写SQL语句让django执行,这样的话会出很多问题,也就是说你执行了alter table users drop column telphone之后,你的model文件不知道你已经对users表结构做了修改,这样会出直接导致django应用的崩溃。所以动态字段不好做。也可能是我才疏学浅,没太理解,也许有高人能做到。不过面对ORM这样的尽量别删除字段。
⑷ python django 连接sqlserver2005数据库 经常连接失败
哦。如果真的存在这样的问题,可能有几个方笑雹桥面。
一个是网络环境本身不好。甚至还有网络防火墙。
第二个原因可能是sqlserver2005自身的配置。关于长链接的维持,会话失效时间的设置。
第三个原因是所用的驱动程序。我印象中有几种。我在linux上用了一种很稳定,连接sql server一直没有发现问题。我是直接驱动的。没有经过django。
第四,你在django访问的时候,如果发现连接错误,可以要求数据重新连接。这个以前我似乎配置过,几年不用了。
第五,可碰猛能与你采集的数据有关。你的数据中是否存在数据太大。下载时间过长。以及不合法数据。这些也可能导致django出错。显示为连接失败。估肆举计是数据错误。
⑸ 如何查看在Django模型创建的SQL语句
Django提供了sql,sql_all命令来生成MODEL的SQL语句,当定义好Django Model后,可以在初始化调用Syncdb方法来自动在数据库里面生成相应的表。
Model定义如下:
class TestModel(models.Model):
Name=models.CharField(max_length=64,blank=True)
>>> from django.core.management.color import no_style
#Style是用来输出语句时着色的
>>> from django.db import connection
>>> from django.db.backends import creation
#这里面有个类BaseDatabaseCreation,就是用来生成SQL语句的。
>>> T=TestModel()
>>> c=creation.BaseDatabaseCreation(connection)
>>>c.sql_create_model(T,no_style())[0]
['CREATE TABLE "abc" (\n "id" integer NOT NULL PRIMARY KEY,\n "Theme" varchar(64) NOT NULL\n)\n;']