পৃষ্ঠভূমি
ভ্যালিডেশন এবং তথ্য রূপান্তর.
তথ্য sanitizing (শুদ্ধি চেক এবং একটি দরকারী ফরমের রূপান্তর) সমস্যা প্রোগ্রামিং জুড়ে ব্যাপক:
- আমি কিভাবে ব্যবহারকারীর ইনপুট সঠিক যাচাই না?
- আমি কিভাবে তারিখ এবং সংখ্যার মধ্যে একটি স্প্রেডশীট থেকে তথ্য munge না?
- আমি কিভাবে প্রোগ্রাম বস্তুর মধ্যে কাঁচা ডাটাবেস ক্ষেত্র রূপান্তর না?
ইয়ান Bicking তার Formencode লাইব্রেরি [formencode] দেহী এই সমস্যার জন্য একটি যুক্তিসম্মত বাগ্ধারা, নিয়ে এসেছেন: বৈধতা এবং রূপান্তর এক এবং একই জিনিস, এবং ভ্যালিডেটর একটি চেইন মাধ্যমে কাঁচা তথ্য পাশ দিয়ে নাড়াচাড়া করতে পারেন. প্রতিটি যাচাইকারী চেক এবং / অথবা তথ্য রূপান্তরিত করে এবং পরবর্তী এটা প্রেরণ করা হয়.
এই আত্মা, konval উপলব্ধকারী একটি প্যাকেজ:
- বৈধতা বস্তুর একটি সমৃদ্ধ লাইব্রেরি
- সহজেই কাস্টম ভ্যালিডেটর উৎপাদন জন্য বেস ক্লাস
- সহজেই উপায়ে বিভিন্ন ভ্যালিডেটর ব্যবহার করার জন্য ফাংশন
স্থিতি
konval, একটি অনুসন্ধানমূলক রাষ্ট্র হয় আরেকটি প্যাকেজ সমর্থন এবং ব্যবহার রূপান্তর generalising থেকে বেরিয়ে এলাম করা যায় কিনা সেটা দেখার উত্পাদিত হয়েছে. যেমন. এটি এখনও একটি প্রাথমিক রিলিজ এবং API পরিবর্তন হতে পারে. মন্তব্য আমন্ত্রণ জানানো হয়.
সংস্থাপনা
konval ইনস্টল করার সবচেয়ে সহজ উপায় easy_install [setuptools] অথবা একটি সমতুল্য প্রোগ্রামের মাধ্যমে হয়:
easy_install konval
অন্যথা tarball রূপে, ডাউনলোড প্যাক এবং setup.py চালানো যাবে:
আলকাতরা zxvf konval.tgz
& Nbsp; সিডি konval
& Nbsp; পাইথন ইনস্টল set.py
konval কোন অপরিহার্য এবং Python- র প্রায় কোনো সংস্করণের সাথে কাজ করা উচিত যে একটি মডিউল.
ব্যবহার konval
একটি পূর্ণ এপিআই সোর্স পরিবেশনার মধ্যে অন্তর্ভুক্ত করা হয়.
উদাহরণ
সাধারণভাবে, konval পরীক্ষা বা পরিষ্কার মান ব্যবহার করা হবে. ব্যর্থতা ব্যতিক্রম নিক্ষিপ্ত হচ্ছে ফলে:
# একটি প্রকৃত পূর্ণসংখ্যা ব্যবহারকারীর ইনপুট রূপান্তর
>>> Konval আমদানি থেকে *
>>> Sanitize ('1.0', ToInt ())
1
>>> Sanitize ('এক', ToInt ())
ট্রেসব্যাক (সবচেয়ে সাম্প্রতিক কল শেষ)
...
ValueError: পূর্ণসংখ্যা '1.0' রূপান্তর করতে পারেন
একটি একক যাচাইকারী বা তালিকা sanitize সাথে প্রেরণ করা যাবে. কোনো ব্যর্থতা কোন ব্যতিক্রম স্থাপিত হবে:
# একটি তালিকা বেশী 3 সদস্য রয়েছে পরীক্ষা
>>> Sanitize (['এ', 'বি', 'সি'], [ToLength (), IsEqualOrLess (3)])
3
# একটি পাসওয়ার্ড পরীক্ষা যথেষ্ট দীর্ঘ হয়
>>> Sanitize ('mypass', [ToLength (), IsEqualOrMore (8)])
ট্রেসব্যাক (সবচেয়ে সাম্প্রতিক কল শেষ)
...
ValueError: 6 থেকে 8 কম
একটি একক মান গ্রহণ করে এবং ফেরৎ যে কোন callable বস্তুর একটি যাচাইকারী হিসাবে ব্যবহার করা যাবে:
>>> স্ট্রিং আমদানি থেকে *
>>> Sanitize ("আমার শিরোনাম", [ফালা, পুঁজিতে])
'আমার শিরোনাম'
Prebuilt ভ্যালিডেটর একটি সমৃদ্ধ লাইব্রেরি সরবরাহ করা হয়:
>>> Sanitize ('খ গ ঘ ঙ', IsNonblank ())
'খ গ ঘ ঙ'
>>> Sanitize (5, IsInRange (1,6))
5
>>> Sanitize ('foo বিন্যাস', প্রতিশব্দ ({'foo বিন্যাস': 'বার', 'Baz': 'quux'}))
'বার'
কাস্টম ভ্যালিডেটর সহজেই একটি সরবরাহকৃত বেস বর্গ থেকে subclassed করা যেতে পারে:
বর্গ IsFoo (BaseValidator):
& Nbsp; Def validate_value (স্ব, মান):
! & Nbsp; যদি মূল্য = 'foo বিন্যাস':
& Nbsp; self.raise_validation_error (মান)
& Nbsp; সত্য ফিরে
এই রিলিজে নতুন কি:
- কয়েক ভ্যালিডেটর থেকে আরও বেশি সঙ্গতিপূর্ণ প্রকল্প নতুন নামকরন করা হয়. নাম এখন সংশোধন করা উচিত.
- পাইথন
- konval ব্যবহারকারীর ইনপুট বাঁক, তথ্য একটি একমুখী রূপান্তর লক্ষ্য করা হয় বা সংরক্ষিত পাইথন অবজেক্টের মধ্যে তথ্য. অবশ্যই এটা বিপরীত দিক ব্যবহৃত, কিন্তু এই একটি প্রাথমিক ব্যবহারের ক্ষেত্রে না করা হতে পারে. একটি দরকারী বিকল্প হতে পারে তাই FormEncode, দ্বিপথ (দুদিকে টিকট) তথ্য রূপান্তর কাছাকাছি ভিত্তি করে.
আবশ্যক
সীমাবদ্ধতা
<লি বর্গ = "bbli"> নাম konval নির্বাচিত হয়েছে কারণ:
<লি> ইতিমধ্যে বলা করুন & quot একটি পাইথন লাইব্রেরী আছে; বৈধতা করুন & quot;
এর করুন & quot আউট <লি>; valcon & quot ;, & quot; valkon & quot ;, & quot; conval করুন & quot; ইত্যাদি এটা ছিল গুগল খুবই কম হিট সঙ্গে এক
পাওয়া মন্তব্যসমূহ না