1、在app下urls.py中定义函数关系
url(r'^delete/([a-zA-Z]+)/(d+)/$', views.delete),
2、在项目下views.py中定义函数
def delete(request, table_name, delete_id): print(table_name, delete_id) # 需要判断一下 表名和id值是否都是正经的数据 # models.Book.objects.get(id=1).delete() # 从另外一个文件 根据字符串 反射具体的变量 table_name = table_name.capitalize() if hasattr(models, table_name): # 如果能找到 table_class = getattr(models, table_name) # 监测id是否存在 try: table_class.objects.get(id=delete_id).delete() except Exception as e: print(str(e)) print("id值不存在!") return HttpResponse("表名:{} id:{}".format(table_name, delete_id)) else: return HttpResponse("表不存在!")
3、新建数据库、添加author表,添加数据
4、执行结果:
(1)输入表名不存在的情况
(2)表存在id不存在的情况
(3)表和id都存在的情况
""" 反射 由字符串反向找 变量、函数、类 """ import sys class Person(object): def __init__(self, name): self.name = name def eat(self, food): print("{} 在吃 {}".format(self.name, food)) def dream(self): print("{} 在做白日梦!".format(self.name)) s = "person" # 字符串首字母大写 s = s.capitalize() print(s, type(s)) # Person <class 'str'> # 反射 #sys.modules[__name__]:从系统的包里找到当前的这个文件。[__name__]指当前这个文件 if hasattr(sys.modules[__name__], s): print("找到了") the_class = getattr(sys.modules[__name__], s) # 获取属性 s 值,赋值给the_class,此时the_class就是一个Person类 print(the_class) # <class '__main__.Person'> #有了这个Person类之后我们就能拿它去用了 obj = the_class(name="赵导") obj.eat("炒饼") # 赵导 在吃 炒饼 # 补充: # print(locals()) # 打印下当前所有可用的变量 print(locals()["s"]) #Person print(locals().get("s")) #Person def f(): a = 1 b = 2 c = 3 print(locals()) f() # {'c': 3, 'b': 2, 'a': 1}