2009-10-10 12 views
17

मैं पाइथन के लिए आसानी से लागू एचटीएमएल जनरेटर की तलाश में हूं। मुझे यह एकपायथन एचटीएमएल जनरेटर

http://www.decalage.info/python/html 

लेकिन तालिका के लिए सीएसएस तत्व (आईडी, कक्षा) जोड़ने का कोई तरीका नहीं है।

THX

उत्तर

7

यदि आप टेम्पलेटिंग के बजाए प्रोग्रामेटिक पीढ़ी चाहते हैं, तो कर्रिगेल के HTMLTags मॉड्यूल एक संभावना है; इसमें शामिल हो सकते हैं उदा। class विशेषता, अपनी प्रारंभिक uppercasing, यानी डॉक यूआरएल मैं सिर्फ दिया हवाले से की चाल से (जो अजगर में एक आरक्षित शब्द होगा): अजगर कीवर्ड (वर्ग, प्रकार के रूप में एक ही नाम के साथ

गुण) पूंजीकृत होना चाहिए:

print DIV('bar', Class="title") ==> <DIV class="title">bar</DIV> 
5

एचटीएमएल पीढ़ी आमतौर पर पायथन के लिए उपलब्ध एचटीएमएल templating भाषाओं के अनंत मात्रा में से एक के साथ किया जाता है। व्यक्तिगत रूप से मुझे Templess पसंद है, लेकिन Genshi शायद सबसे लोकप्रिय है। उनमें से अनंत मात्रा में, list है जो अपूर्ण होने की अत्यधिक संभावना है।

अन्यथा आप lxml का उपयोग करना चाहेंगे, जहां आप इसे अधिक प्रोग्रामेटिक रूप से XML-ish तरीके से उत्पन्न कर सकते हैं। हालांकि मुझे लाभ देखने में मुश्किल होती है।

+0

परीक्षण करने के लिए एक अलग रूप में के रूप में चाहता है: Genshi templating Trac द्वारा प्रयोग किया जाता इंजन है। – retracile

5

रॉबिन फ्रेडरिक, जो मुश्किल है लेकिन अभी भी उपलब्ध here (दिनांकित 2001 से सम्मानित HTMLGen नहीं है, लेकिन एचटीएमएल ज्यादा तब से ;-) नहीं बदला है। xist भी है। बेशक आजकल एचटीएमएल पीढ़ी, जैसा कि लेनार्ट बताते हैं, आमतौर पर Jinja या Mako जैसे टेम्पलेट सिस्टम का उपयोग करके बेहतर किया जाता है।

+0

आजकल? पाइथन टेम्पलेटिंग कम से कम डीटीएमएल, 1 99 7 से आसपास रही है। :) जेपीपी जो 2001 से बेहतर है। :) [बस नाइटपिकिंग] –

2

असल में आप HTML.py (http://www.decalage.info/python/html) में ऑब्जेक्ट्स के लिए आईडी और क्लास जैसी कोई भी विशेषता जोड़ सकते हैं।

अट्रिबल्स तालिका, टेबलरो और टेबलसेल कक्षाओं का एक वैकल्पिक पैरामीटर है। यह अतिरिक्त विशेषताओं का एक शब्दकोश है जिसे आप सेट करना चाहते हैं। उदाहरण के लिए, निम्नलिखित कोड एक मेज के लिए आईडी और वर्ग सेट:

import HTML 
table_data = [ 
     ['Last name', 'First name', 'Age'], 
     ['Smith',  'John',   30], 
     ['Carpenter', 'Jack',   47], 
     ['Johnson',  'Paul',   62], 
    ] 
htmlcode = HTML.table(table_data, 
    attribs={'id':'table1', 'class':'myclass'}) 
print htmlcode 

एक ही पैरामीटर प्रारूप पंक्तियों और कोशिकाओं को TableRow और TableCell वस्तुओं के साथ इस्तेमाल किया जा सकता। यह अभी तक कॉलम के लिए मौजूद नहीं है, लेकिन यदि आवश्यक हो तो इसे लागू करना आसान होना चाहिए।

0

आपको कुछ पायथन एचएएमएल कार्यान्वयन में रुचि हो सकती है। एचएएमएल एचटीएमएल शॉर्टेंड की तरह है और सीखने में केवल कुछ मिनट लगते हैं। SASS नामक एक सीएसएस संस्करण भी है।

http://haml.hamptoncatlin.com/

"Is there a HAML implementation for use with Python and Django" अजगर और Haml में थोड़ा और अधिक के बारे में बात करती है।

मैं रूबी में प्रोग्रामिंग करते समय जितना संभव हो HAML का उपयोग कर रहा हूं।और, एक फुटनोट के रूप, वहाँ भी पर्ल के लिए कुछ काम मिल रहा है मॉड्यूल जो अच्छा MVC Mojolicious के साथ काम हो गया है:

http://metacpan.org/pod/Text::Haml

4

यह एक अति साधारण HTML जनरेटर मैं लिखा है है। मैं इसे एचटीएमएल उत्पन्न करने के लिए बिल्ड-टाइम का उपयोग करता हूं। वहाँ बेहतर विकल्प उपलब्ध हैं एक HTML पृष्ठों रन-टाइम तो पैदा कर रहा है, तो

यहाँ लिंक

http://pypi.python.org/pypi/sphc

और एक त्वरित उदाहरण

>> import sphw 
>> tf = sphw.TagFactory() 
>>> div = tf.DIV("Some Text here.", Class='content', id='foo') 
>>> print(div) 

<DIV Class="content", id="foo">Some Text here.</DIV> 
3

Dominate एक HTML पीढ़ी पुस्तकालय है कि आपको आसानी से टैग बनाने देता है। हावी में, अजगर आरक्षित शब्द एक अंडरस्कोर लगी होती हैं, तो यह इस प्रकार दिखाई देगा:

from dominate.tags import * 
t = div(table(_id="the_table"), _class="tbl") 
print(t) 


<div class="tbl"> 
    <table id="the_table"></table> 
</div> 

अस्वीकरण: मैं के लेखक हूँ हावी

3

ठीक है, यहाँ एक और एचटीएमएल जनरेटर है, या मुझे लगता है कि पसंद करते हैं एक कंपाइलर के रूप में।

https://pypi.python.org/pypi/python-html-compiler

इस आधार वर्ग कि टैग को परिभाषित करने के लिए किया जा सकता और विशेषताएँ का एक सेट है। इस प्रकार एक टैग क्लास में गुण और बच्चे हैं। बच्चे स्वयं टैग कक्षाएं हैं जिनमें गुण और बच्चे इत्यादि हैं। इसके अलावा आप पैरामीटर सेट कर सकते हैं जो आपकी रूट कक्षा से शुरू होते हैं और विभिन्न शाखाओं का काम करते हैं।

यह आपको इच्छित सभी टैग कक्षाओं को परिभाषित करने की अनुमति देगा, इस प्रकार आप अनुकूलित कक्षाएं बनाने और इच्छित टैग या विशेषताओं को लागू करने में सक्षम होंगे।

बस, इस पर शुरू कर दिया है, इसलिए यदि किसी को भी :)

संबंधित मुद्दे