I don't know why but if I do like that I have error:
table.py
db.define_table(
'recipes',
Field('NAME',length=512),
Field('IMAGE','*blob*'),
migrate=False
)
and query in controller:
db().select(db.recipes.IMAGE).first()
Версия
web2py™ Version 2.18.5-stable+timestamp.2019.04.08.04.22.03
Python Python 3.7.3: C:\Program Files (x86)\Python37-32\python.exe (prefix:
C:\Program Files (x86)\Python37-32)Traceback
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Traceback (most recent call last):
File "C:\web2py\gluon\restricted.py", line 219, in restricted
exec(ccode, environment)
File "C:\web2py\applications\test\controllers/default.py", line 61, in
<module>
File "C:\web2py\gluon\globals.py", line 421, in <lambda>
self._caller = lambda f: f()
File "C:\web2py\applications\test\controllers/default.py", line 9, in index
db().select(db.recipes.IMAGE).first()
File "C:\web2py\gluon\packages\dal\pydal\objects.py", line 2395, in select
return adapter.select(self.query, fields, attributes)
File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 763, in
select
return self._select_aux(sql, fields, attributes, colnames)
File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 742, in
_select_aux
return processor(rows, fields, colnames, cacheable=cacheable)
File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 306, in parse
for row in rows
File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 303, in
<listcomp>
self._parse(
File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 232, in
_parse
value = self.parse_value(value, fit, ft, blob_decode)
File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 199, in
parse_value
return self.parser.parse(value, field_itype, field_type)
File "C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py", line 100, in
parse
return self.registered[field_itype](value, field_type)
File "C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py", line 75, in
__call__
return self.call(value, field_type)
File "C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py", line 72, in
_call
return self.f(self.parser, value)
File "C:\web2py\gluon\packages\dal\pydal\parsers\base.py", line 37, in _blob
decoded = b64decode(to_bytes(value))
File "C:\web2py\gluon\packages\dal\pydal\_compat.py", line 131, in to_bytes
raise TypeError('Expected bytes')
TypeError: Expected bytes
Error snapshot [image: help]
<http://127.0.0.1:8000/admin/default/ticket/test/127.0.0.1.2019-08-09.23-35-41.70898352-368b-4941-a3b8-c3eb55b113f9#>
TypeError(Expected bytes)
inspect attributes
Frames
-
*File C:\web2py\gluon\restricted.py in restricted at line 219* код
аргументы переменные
-
*File C:\web2py\applications\test\controllers\default.py in <module> at
line 61* код аргументы переменные
-
*File C:\web2py\gluon\globals.py in <lambda> at line 421* код аргументы
переменные
-
*File C:\web2py\applications\test\controllers\default.py in index at
line 9* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\objects.py in select at line
2395* код аргументы переменные
Code listing
2390.
2391.
2392.
2393.
2394.
2395.
2396.
2397.
2398.
2399.
attributes.get('join', None),
attributes.get('left', None),
attributes.get('orderby', None),
attributes.get('groupby', None))
fields = adapter.expand_all(fields, tablenames)
return adapter.select(self.query, fields, attributes)
def iterselect(self, *fields, **attributes):
adapter = self.db._adapter
tablenames = adapter.tables(self.query,
-
*File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in select at
line 763* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in _select_aux
at line 742* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in parse at
line 306* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in <listcomp>
at line 303* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in _parse at
line 232* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in parse_value
at line 199* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py in parse at
line 100* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py in __call__
at line 75* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py in _call at
line 72* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\parsers\base.py in _blob at
line 37* код аргументы переменные
-
*File C:\web2py\gluon\packages\dal\pydal\_compat.py in to_bytes at line
131* код аргументы переменные
Function argument list
(obj=<fdb.fbcore.BlobReader object>, charset='utf-8', errors='strict')
Code listing
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
return None
if isinstance(obj, (bytes, bytearray, memoryview)):
return bytes(obj)
if isinstance(obj, str):
return obj.encode(charset, errors)
raise TypeError('Expected bytes')
def to_native(obj, charset='utf8', errors='strict'):
if obj is None or isinstance(obj, str):
return obj
Is it bug of DAL or it's normal?
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/959c7084-f409-4abb-aa6b-eaf52c872788%40googlegroups.com.