On 12/10/13 16:01, Kush Goyal wrote:
Hi,

I am learning web development by using flask framework. The below code
is used to create a class LoginForm which inherits from the class
Form.

In the method 'validate' of class 'LoginForm' the variable 'user' is
initialized by using:

"user = User.query.filter_by ( username = self.username.data ).first()"

now this I do not understand.

Can a object be create by using a method of a class instead of the
class consturctor? I mean shouldn't it be:

user = User()


An object can be returned  by any function or method.
Consider:

>>> class C:
...    pass
...
>>> def f():
...    return C()
...
>>> c1 = C()
>>> c2 = f()
>>> isinstance(c1,C)
True
>>> isinstance(c2,C)
True
>>>

Later in the code "user.check_password(self.password.data)" is used.
So here also how can check_password be used when the object 'user' has
not been initiated using a constructor?

It has, but it was done inside the  User.query.filter_by() method.
I don't know Flask but I assume this method initializes a
new empty User instance then populates it with data retrieved
from a database before returning the instance to its caller.

Also, 'User' is a class which inherits from 'db.Model'. And db is
initialized as: db = SQLAlchemy(app)

So, here is db is an object and Model is a variable of class
SQLAlchemy. Can someone please explain what is db.Model and can
SQLAlchemy.Model be used in place of db.Model?

That requires a wee bit more detailed knowledge of SQLAlchemy.
My guess is that db.Model is a class. Classes are objects too
and can be stored as variables. Again, continuing the session
above:

>>> myclass = C
>>> c3 = myclass()
>>> isinstance(c3,C)
True

HTH

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to