从数据库中使用SQLalchemy提取两列数据。

huangapple go评论109阅读模式
英文:

Fetch two columns from db using SQLalchemy

问题

I am learning python and trying to create a drop-down in my form with the data from another table. here is my code

Models.py

  1. class empmasterModel(db.Model):
  2. __tablename__ = "empmaster"
  3. Empnum = db.Column(db.Integer, primary_key=True)
  4. Employee_Number = db.Column(db.Integer(),primary_key=True,unique = True)
  5. Employee_Name = db.Column(db.String())
  6. Employee_Type = db.Column(db.String())
  7. Coreid = db.Column(db.String())
  8. EmailId = db.Column(db.String())
  9. def __init__(self, Employee_Number,Employee_Name,Employee_Type,Coreid,EmailId):
  10. self.Employee_Number = Employee_Number
  11. self.Employee_Name = Employee_Name
  12. self.Employee_Type = Employee_Type
  13. self.Coreid = Coreid
  14. self.EmailId = EmailId
  15. def __repr__(self):
  16. return f"{self.Employee_Number}:{self.Employee_Name}:{self.Employee_Type}:{self.Coreid}:{self.EmailId}"

Above is my models.py code with class empmaster from which DB table I need the employee number and employee name.

app.py

  1. @app.route('/component/add', methods=['GET', 'POST'])
  2. def componentadd():
  3. error_msg = ''
  4. success_msg = ''
  5. if request.method == 'GET':
  6. empmaster_data = empmasterModel.query.all()
  7. print(empmaster_data , "dbbbbbbbbbbbbb")
  8. return render_template('component/add.html', empmaster_data=empmaster_data)

Above is the app.py code where I am trying to fetch data from the empmaster table. But here I am getting the whole table data but not two-column data. I tried two column names in brackets after the filter too but it did not work. I searched for many solutions but was not getting desired results. Can somebody help me?

英文:

I am learning python and trying to create a drop-down in my form with the data from another table. here is my code

Models.py

  1. class empmasterModel(db.Model):
  2. __tablename__ = "empmaster"
  3. Empnum = db.Column(db.Integer, primary_key=True)
  4. Employee_Number = db.Column(db.Integer(),primary_key=True,unique = True)
  5. Employee_Name = db.Column(db.String())
  6. Employee_Type = db.Column(db.String())
  7. Coreid = db.Column(db.String())
  8. EmailId = db.Column(db.String())
  9. def __init__(self, Employee_Number,Employee_Name,Employee_Type,Coreid,EmailId):
  10. self.Employee_Number = Employee_Number
  11. self.Employee_Name = Employee_Name
  12. self.Employee_Type = Employee_Type
  13. self.Coreid = Coreid
  14. self.EmailId = EmailId
  15. def __repr__(self):
  16. return f"{self.Employee_Number}:{self.Employee_Name}:{self.Employee_Type}:{self.Coreid}:{self.EmailId}"

Above is my models.py code with class empmaster from which DB table I need the employee number and employee name.

app.py

  1. @app.route('/component/add', methods=['GET', 'POST'])
  2. def componentadd():
  3. error_msg = ''
  4. success_msg = ''
  5. if request.method == 'GET':
  6. empmaster_data = empmasterModel.query.all()
  7. print(empmaster_data , "dbbbbbbbbbbbbb")
  8. return render_template('component/add.html', empmaster_data=empmaster_data)

Above is the app.py code where I am trying to fetch data from empmaster table. But here I am getting whole table data but not two-column data. I tried two column names in brackets after the filter too but it did not work. I searched for many solutions but was not getting desired results. Can somebody help me?

答案1

得分: 1

如果您使用会话管理,您可以像这样操作:

  1. session.query(
  2. empmasterModel.Employee_Number.label("Employee_Number"),
  3. empmasterModel.Employee_Name.label("Employee_Name")
  4. ).all()

如果您使用Flask而没有会话管理,您可以从SQLAlchemy实例获取会话。

  1. db = SQLAlchemy() # 通常在您的app.py中

然后:

  1. db.session.query(
  2. empmasterModel.Employee_Number.label("Employee_Number"),
  3. empmasterModel.Employee_Name.label("Employee_Name")
  4. ).all()
英文:

If you have session management, you can do something like:

  1. session.query(
  2. empmasterModel.Employee_Number.label("Employee_Number"),
  3. empmasterModel.Employee_Name.label("Employee_Name")
  4. ).all()

If you use Flask with no session management, you can get the session from the SQLAlchemy instance.

  1. db = SQLAlchemy() # Usually in you app.py

And then:

  1. db.session.query(
  2. empmasterModel.Employee_Number.label("Employee_Number"),
  3. empmasterModel.Employee_Name.label("Employee_Name")
  4. ).all()

huangapple
  • 本文由 发表于 2023年1月6日 14:00:43
  • 转载请务必保留本文链接:https://go.coder-hub.com/75027461.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定