首页 > 其他 > 详细

路由层--反射删除

时间:2020-04-25 14:04:50      阅读:50      评论:0      收藏:0      [点我收藏+]

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}
反射复习

 

路由层--反射删除

原文:https://www.cnblogs.com/zh-xiaoyuan/p/12772632.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!