عندي مشكلة في اطار فلاسك :لما اعرض روابط لملفات مخزنة في قاعدة بيانات باللغة العربية واضغط على الربط لعرض الملف يظهر الملف غير موجود واذا كان رابط الملف بالانجليزي يظهر الملف تمام ...ايش الحل ؟
فتح الرابط لملف
أرجو من حضرتك رفع صورة للصفحة(العربية والإنجليزية) التي تحاول الدخول إليها مبيناً الرابط ورسالة الخطأ إن وجدت.
أرجو تغيير إسم الصورة جامعة حضرموت إلى hadermawt_university
ومن ثم إعادة تشغيل تطبيق الـFlask، والمحاولة مجدداً.
بإنتظار النتائج....
شي طريقة ثانية لعرض الملفات من قاعدة البيانات افضل من هذة:
{% for post in sd11 %}
<table width='100%' border='5' cellpadding'5' bgcolor='green'>
<tr>
<td>
<center><font size=10><a href="{{ url_for('static', filename=post['nm2'])}}">{{post['namedb']}}</a></font></center>
يمكنك عرض البيانات مرقمة في List بدلاً من تضمينها في جدول، لتطبيق ذلك إليك الكود التالي:
<ol>
{% for post in sd11 %}
<li>
<a href="{{ url_for('static', filename=post['nm2'])}}">{{post['namedb']}}</a>
</li>
{% endfor %}
</ol>
ملاحظة:
<ol>
هو عنصر القائمة المرتبة/ المرقمة وهو إختصار لـOrdered List
أما li فهو إختصار لـ List Item أي أنه عنصر في القائمة.
المشكلة المتعلقة باللغة العربية ليست من إطار flask بل أعتقد أنها متعلقة بإسم الملف الموجود في قاعدة البيانات SQLite 3 المستخدمة في التطبيق أو في آلية جلبك لأسماء الملفات.
قمت بتجربة بسيطة بإستخدام flask وقد كتبت الإسم باللغة العربية ولم يواجهني أي مشاكل.
مرفق صورة التجربة.
تم إدخال رابط الملف بشكل مباشر( لم يتم جلبه من قاعدة بيانات) كما يظهر بالكود التالي:
<a href="{{ url_for('static',filename='الملف الخاص بي.txt')}}">test</a>
الرابط حق الملف صح 100% ولكن الرابط بعد الضغط علية يطلع هكذا:
شي حل لترميز هذا:%25D8%25AC%25D8%25AF%25D9%258A%25D8%25
الرابط حق الملف صح 100% ولكن الرابط بعد الضغط علية يطلع هكذا:
شي حل لترميز هذا:%25D8%25AC%25D8%25AF%25D9%258A%25D8%25
مرحبا،
ما هو الترميز المستخدم في قاعدة البيانات؟
هل يمكنك ايضا تصوير جزء من الجول الذي يحوي بيانات مسار الملفات؟
في حان ترميز قاعدة البيانات مختلف عن utf 8 هذا يسبب المشكلة. اختر utf8_unicode_ci
التعليقات