Mohssen A Mohssen نشر 6 يناير 2022 أرسل تقرير نشر 6 يناير 2022 لدي النص التالي مخزن في قاعدة البيانات: <img src="https://via.placeholder.com/150" /> وأريد أن يتم تحويله إلى الكود التالي ليتم عرضه كصورة في المتصفح: <img src="https://via.placeholder.com/150" /> كيف يمكن القيام بهذا الأمر في جانغو Django؟ اقتباس
1 Mohamed Abu Abdo نشر 7 يناير 2022 أرسل تقرير نشر 7 يناير 2022 علي اي حال يمكن استخدام التعابير القياسية او المنطقية في بايثون , ساطرح طريقتين الأولي تعتمد علي السطر الذي ارفقته اعلاه , دعنا في البداية نتفق علي ان ما يهمنا من هذا النص هو url الصورة والذي نود الحصول عليه ودمجه في كود html عادي.[إذا كان يهمك شئ اخر غير url في النص ارجو اخطاري ادناه] ولنفرض مبدئيا أن لديك قائمة او list من تلك النصوص . الطريقة الأولي للحل هي البحث عن http او https ضمن السطر , استخدام دالة string.find او rfind ستساعدنا علي معرفة مكان بداية رابط الصورة او url كرقم مجرد. ثم نعيد البحث عن """ والتي نعتبرها نهاية وسم url او رابط الصورة. يمكننا الحصول علي url عند حصر هذا النطاق. كما يلي it = "<img src="http://via.placeholder.com/150" />" start = it.find('https') if it.find('https')>-1 else it.find('http') end = it.rfind('"') url = it[start:end] print(url) '''```output:http://via.placeholder.com/150```''' ثم يمكننا اضافة url الي وسم html بسهولة, res = f'<img src="{url}" />' print(res) '''Output:<img src="http://via.placeholder.com/150" />''' ولتطويرها اليك الكود الكامل: p_list = ["<img src="http://via.placeholder.com/150" />", "<img src="https://via.placeholder.com/image.jpg; />"] def conv_html(url): return f'<img src="{url}" />' def proc_dec1(p_list): result = [] for it in p_list: if 'img' in it: start = it.find('https') if it.find('https')>-1 else it.find('http') end = it[start:].rfind('.jpg')+4 if it[start:].rfind('.jpg')>-1 else it[start:].rfind('"') step_one = it[start:start+end] step_two = conv_html(step_one) result.append(step_two) return result result = proc_dec1(p_list) print(result) '''Output:['<img src="http://via.placeholder.com/150" />', '<img src="https://via.placeholder.com/image.jpg" />']''' لقد اضفت .jpg علي سبيل المثال ويمكنك التخصيص اكثر اذا كانت بياناتك تتضمن انماطاً مختلفة, اما الطريقة الثانية ,وهي استخدام تعابير re للبحث عن url داخل النص, اليك المثال التالي, import re p_list = ["<img src="http://via.placeholder.com/150" />", "<img src="https://via.placeholder.com/image.jpg; />"] def conv_html(url): return f'<img src="{url}" />' def proc_dec2(p_list): result = [] for it in p_list: step_one = re.search("(?P<url>https?://[^\s]+)", it).group("url") step_two = step_one.replace(';','') out = conv_html(step_two) result.append(out) return result result = proc_dec2(p_list) print(result) '''Output:['<img src="http://via.placeholder.com/150"" />', '<img src="https://via.placeholder.com/image.jpg" />']''' ربما تكون re اكثر مرونة عن الطريقة الأولي وهي البحث بشكل شبه مخصص عن url في داخل اي string او سلسلة نصية, وماتزال هناك طرق اخري , برغم جودة هؤلاء وفعاليتهم, لكن اعود لسؤالي الأول هل بيانات تحوي انماطا مختلفة؟؟ اذا كان الامر كذلك ارجو اخطاري وسأقوم بمناقشة الأمر معكم.. 1 اقتباس
0 Mohamed Abu Abdo نشر 7 يناير 2022 أرسل تقرير نشر 7 يناير 2022 السلام عليكم ورحمه الله , هل هذا السطر ثابت؟؟ "<img src="https://via.placeholder.com/150" />" او ان هناك اشكال اخري داخل قاعدة بياناتك؟ اقتباس
السؤال
Mohssen A Mohssen
لدي النص التالي مخزن في قاعدة البيانات:
<img src="https://via.placeholder.com/150" />
وأريد أن يتم تحويله إلى الكود التالي ليتم عرضه كصورة في المتصفح:
كيف يمكن القيام بهذا الأمر في جانغو Django؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.