Por uma web mais segura
Sql Like in Gae with Web2py
Olá pessoal, estou aquin novamente para esclarecer algo que tem trazido muita
dificuldade para quem trabalha com o GAE (Google App Engine), estou falando
de filtros utilizando o “SQL LIKE”.
Na verdade o GAE não dá suporte ao uso de consultas com o “like”, entretanto
podemos minimizar a falta dele fazendo uma pesquisa com um “falso like” onde
o usuário poderá filtrar resultados que coicidam com o início do termo pesquisado.
Exemplo utilizando GqlQuery like in gae.
query = self.request.str_POST['query'] queryEnd = query+"\xEF\xBF\xBD".decode('utf-8') res = db.GqlQuery('SELECT * FROM User WHERE name>=:1 AND name<=:2 ORDER BY nom DESC', query, queryEnd)
Agora outro exemplo utilizando o a sintaxe de consultas do web2py
# observe a utilização do decode('utf-8') na linha abaixo para permitir filtro com caracteres acentuados queryStart = request.vars.search.decode('utf-8') queryEnd = queryStart+"\xEF\xBF\xBD".decode('utf-8') query =((db.auth_user.email>=queryStart)&(db.auth_user.email<=queryEnd)) res = db(query).select()
Como isto deve ser utilizado em várias partes do código, você pode criar uma
pequena função que retorna o sql montado.
def like_query(term, field): """ Recebe o termo pesquisado 'term (string)' e o campo a pesquisar 'field (object)' e retorna o SQL que será utilizado com o objeto db() """ queryStart = term.decode('utf-8') queryEnd = queryStart+"\xEF\xBF\xBD".decode('utf-8') query =((field>=queryStart) & (field<=queryEnd)) return query query = like_query(request.vars.filter, db.auth_user.full_name)
O mais importante disto tudo, “Você pode pesquisar no gae sem precisar digitar todo o texto da pesquisa”
Galera, confesso que não foi fácil encontrar material para este post, e sei que
muita gente vai precisar disto, então peço que postem algo que seja uma solução
melhor ou até mesmo alternativa para utilização o like no gae.
| Print article | This entry was posted by admin on 19 de Maio de 2011 at 16:05, and is filed under GAE, Python. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |
about 9 months ago
SQL LIKE IN GAE usando o GqlQuery e DAL(web2py) http://bit.ly/kkTbrW
about 9 months ago
RT @ldmotta: SQL LIKE IN GAE usando o GqlQuery e DAL(web2py) http://bit.ly/kkTbrW