[Flask] Updating database fields from views
Tom Vaughan
thomas.david.vaughan at gmail.com
Sat Feb 25 08:50:01 EST 2017
But how exactly is it imported? Where is it assigned a value? The
problem seems to be that db is not an instance of a Database object,
but rather it has been assigned a string. For example:
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> db = "foobar"
>>> db.session
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'session'
On Sat, Feb 25, 2017 at 9:40 AM, Anonymous Coder
<anonymouscodar at gmail.com> wrote:
> It is imported from another file.
>
> On Sat, Feb 25, 2017 at 11:51 AM, Gergely Polonkai <gergely at polonkai.eu>
> wrote:
>>
>> The error message you showed us most probably references the db variable.
>> Is db a global variable in the same file? Or is it imported from another
>> module? Can you check its value?
>>
>>
>> On Sat, Feb 25, 2017, 12:46 Anonymous Coder <anonymouscodar at gmail.com>
>> wrote:
>>>
>>> Just a clarity that the stackoverflow post has nothing to do with the
>>> question. That problem I got solved. I just gave the reference to show you
>>> how my models are defined.
>>> Thanks
>>>
>>>
>>> On Sat, Feb 25, 2017 at 10:26 AM, Anonymous Coder
>>> <anonymouscodar at gmail.com> wrote:
>>>>
>>>> I am having trouble understanding how to manipulate database in Flask
>>>> from views. Rest of topics I was able to cover pretty quickly in Flask. I am
>>>> a new user so help is much appreciated.
>>>>
>>>> Following is the link for details guys from one of my post at
>>>> stackoverflow. Thank a lot for help guys.
>>>>
>>>>
>>>> http://stackoverflow.com/questions/42451870/flask-error-typeerror-incompatible-collection-type-str-is-not-list-like/42452448?noredirect=1#comment72048738_42452448
>>>>
>>>>
>>>>
>>>> On Sat, Feb 25, 2017 at 8:43 AM, Gergely Polonkai <gergely at polonkai.eu>
>>>> wrote:
>>>>>
>>>>> Where does your db variable come from?
>>>>>
>>>>>
>>>>> On Sat, Feb 25, 2017, 08:36 Anonymous Coder <anonymouscodar at gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> I am having trouble with updating database tables from flask view.
>>>>>> Following is the view:
>>>>>>
>>>>>> @app.route('/yearlychargedrec', methods=['GET', 'POST'])
>>>>>> def yearly_charged_rec():
>>>>>>
>>>>>> if not user_authorized():
>>>>>> return redirect('/')
>>>>>> # customer
>>>>>> if request.method == 'POST':
>>>>>> stripe_token = request.form['stripeToken']
>>>>>> email = request.form['stripeEmail']
>>>>>>
>>>>>> customer = stripe.Customer.create(
>>>>>> email=email,
>>>>>> source=request.form['stripeToken']
>>>>>> )
>>>>>> try:
>>>>>> subscription = stripe.Subscription.create(
>>>>>> customer=customer.id,
>>>>>> plan="yearlyrec",
>>>>>> )
>>>>>>
>>>>>> package = Package(
>>>>>>
>>>>>> is_active=True,
>>>>>> planname = 'yearlyrec',
>>>>>>
>>>>>> )
>>>>>> db.session.add(package)
>>>>>> db.session.commit()
>>>>>>
>>>>>> except stripe.error.CardError as e:
>>>>>> # The card has been declined
>>>>>> body = e.json_body
>>>>>> err = body['error']
>>>>>>
>>>>>> return render_template('/profile/charge/monthlycharge.html')
>>>>>>
>>>>>> Error I get is:
>>>>>>
>>>>>> AttributeError: 'str' object has no attribute 'session'
>>>>>>
>>>>>> Please advise.
>>>>>> _______________________________________________
>>>>>> Flask mailing list
>>>>>> Flask at python.org
>>>>>> https://mail.python.org/mailman/listinfo/flask
>>>>
>>>>
>>>
>
>
> _______________________________________________
> Flask mailing list
> Flask at python.org
> https://mail.python.org/mailman/listinfo/flask
>
More information about the Flask
mailing list