Lorsque j'écrivais un composant de recherche aujourd'hui, je voulais sélectionner le champ de recherche selon que la recherche portait sur toutes les lettres.
Il y a donc le code suivant :
if q.isalpha():
query = query.filter(User.username.ilike(like_str))else:
query = query. filter (User.realname.ilike(like_str))
Mais j'ai trouvé que même s'il contient du chinois, isalpha est jugé vrai.
Le test a révélé que la méthode isalpha in str n'est pas fiable pour juger Unicode.
Le décodage des paramètres par défaut dans Flask est UTF-8. Par conséquent, vous devez utiliser encode('utf-8') pour le ré-encoder avant que la fonction isalpha() puisse être utilisée.
Le test est le suivant :
In [15]: u"张 x".isalpha() Out[15]: TrueIn [16]: "张 x".isalpha()Out[16]: False In [17]: "aac".isalpha() Out[17]: True In [18]: u"张 x".encode('utf-8').isalpha() Out[18]: False
[Recommandations associées]
1 Tutoriel vidéo gratuit Python
2. en python Méthode pour vérifier si une chaîne est constituée de lettres : string.isalpha()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!