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