SQL:
一对多关系
多对多关系
1、登录(user_info.nid=1)
select nid,username from user_info where username=%s and password=%s
2、获取菜单
select caption from permiss_to_user left join permission on permission_to_user.permission_id = permission.nid where permission_to_user.user_id = %s #第一步获取的用户当前nid
3、提问
1、登录(user_info.nid=1,role_id=2)
2、获取菜单
select caption from permission left join permission_to_role on ... where role_id = %
3、打印所有菜单
4、菜单显示?如何跟代码关联起来
反射调用
创建目录:
smoke@smoke-GS70-2PC-Stealth:~/文档/DocumentFile/PycharmProjects/pythonProject/join$ tree pra pra ├── app.py ├── bin │ └── __init__.py ├── __init__.py └── src ├── commons.py ├── __init__.py └── __pycache__ ├── commons.cpython-38.pyc └── __init__.cpython-38.pyc 3 directories, 7 files
commons.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: commons # time: 2021/10/15 def add(): print('add')
app.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: app # time: 2021/10/15 from src import commons commons.add() /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/venv/bin/python /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/join/pra/app.py add Process finished with exit code 0 #!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: app # time: 2021/10/15 from src import commons # commons.add() func_name = 'add' func = getattr(commons,func_name) func() /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/venv/bin/python /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/join/pra/app.py add Process finished with exit code 0
commons.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: commons # time: 2021/10/15 def add(): print('add') def delete(): print('add') def modify(): print('add')
app.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: app # time: 2021/10/15 from src import commons # commons.add() func_name = 'add' func_name = 'add' func_name = 'add' func = getattr(commons,func_name) func()
2、获取菜单[{'caption':xx,'func':'add',{}]
permission_list = [
{'caption': '添加用户', 'func': 'add'},
{'caption': '添加用户', 'func': 'delete'},
{'caption': '添加用户', 'func': 'fetch'},
]
for index,item in enumrate(permission_list,1):
print(index, item['caption'])
1 添加用户
2 删除用户
3 查看用户
choice = input('请输入要选择的菜单?')
choice = int(choice)
permission = permission_list[choice-1]
func_name = permission['func']
from src import commons
func = getattr(commons,func_name)
func()
commons.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: commons # time: 2021/10/15 def add(): print('add') def delete(): print('add') def modify(): print('add') def update(): print('update')
创建user_info.py
smoke@smoke-GS70-2PC-Stealth:~/文档/DocumentFile/PycharmProjects/pythonProject/join$ tree pra pra ├── app.py ├── bin │ └── __init__.py ├── __init__.py └── src ├── commons.py ├── __init__.py ├── __pycache__ │ ├── commons.cpython-38.pyc │ └── __init__.cpython-38.pyc └── user_Info.py 3 directories, 8 files
创建permission.py
smoke@smoke-GS70-2PC-Stealth:~/文档/DocumentFile/PycharmProjects/pythonProject/join$ tree pra pra ├── app.py ├── bin │ └── __init__.py ├── __init__.py └── src ├── commons.py ├── __init__.py ├── permission.py ├── __pycache__ │ ├── commons.cpython-38.pyc │ └── __init__.cpython-38.pyc └── user_Info.py 3 directories, 9 files
user_info.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: user_Info # time: 2021/10/15 def add(): print('add') def delete(): print('add') def modify(): print('add') def update(): print('update')
permission.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: permission # time: 2021/10/15 def add(): print('add') def delete(): print('add') def modify(): print('add') def update(): print('update')
创建order.py、merchant.py文件
smoke@smoke-GS70-2PC-Stealth:~/文档/DocumentFile/PycharmProjects/pythonProject/join$ tree pra pra ├── app.py ├── bin │ └── __init__.py ├── __init__.py └── src ├── commons.py ├── __init__.py ├── merchant.py ├── order.py ├── permission.py ├── __pycache__ │ ├── commons.cpython-38.pyc │ └── __init__.cpython-38.pyc └── user_Info.py 3 directories, 11 files
permission_list = [
{'caption': '添加用户', 'func': 'add','module': 'user_info'},
{'caption': '添加用户', 'func': 'delete','module': 'user_info'},
{'caption': '添加用户', 'func': 'fetch','module': 'user_info'},
]
for index,item in enumrate(permission_list,1):
print(index, item['caption'])
1 添加用户
2 删除用户
3 查看用户
choice = input('请输入要选择的菜单?')
choice = int(choice)
permission = permission_list[choice-1]
func_name = permission['func']
######
from src import commons
######根据字符串动态导入模块
r = IMPORT('user_info')
func = getattr(r,func_name)
func()
动态导入模块
app.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: app # time: 2021/10/15 module = 'src.commons' func_name = 'add' import importlib m = importlib.import_module(module) print(m) /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/venv/bin/python /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/join/pra/app.py <module 'src.commons' from '/home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/join/pra/src/commons.py'> Process finished with exit code 0 #!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: app # time: 2021/10/15 module = 'src.commons' func_name = 'add' import importlib m = importlib.import_module(module) func = getattr(m,func_name) func() /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/venv/bin/python /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/join/pra/app.py add Process finished with exit code 0
user_info.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: user_Info # time: 2021/10/15 def add(): print('asdf') def delete(): print('add') def modify(): print('add') def update(): print('update')
app.py
#!/usr/bin/env python3.8 # -*- coding: UTF-8 -*- # __author: smoke # file: app # time: 2021/10/15 module = 'src.user_Info' func_name = 'add' import importlib m = importlib.import_module(module) func = getattr(m,func_name) func() /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/venv/bin/python /home/smoke/文档/DocumentFile/PycharmProjects/pythonProject/join/pra/app.py asdf Process finished with exit code 0