选择字段中所有编程语言的列表

时间:2014-07-06 05:53:31

标签: python

我正在尝试创建一个 WtForms SelectField ,它将显示所有可供选择的各种编程语言。

几乎不可能在选择字段中键入所有编程语言listed here。如何实现这种选择字段。

代码

class SkillForm(Form):
    skill = SelectField('Languages', choices=[('c++', 'C++'), ('python', 'Python'), ('text', 'Plain Text')])
    submit = SubmitField('Submit')

    def validate_skill(self, field):
        if Skill.query.filter_by(author_id=current_user.id).filter(Skill.skill==field.data.lower()).first():
            raise ValidationError('Skill already exists.')

我刚刚添加了三项技能,仅用于测试目的,它可以工作,我需要包含所有可能的语言,并且几乎不可能将它们全部写入选择中,所以我从中获得了其他选项。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以从运行脚本的网站获取所有语言:

#Get the html
import urllib2
response = urllib2.urlopen('http://en.wikipedia.org/wiki/List_of_programming_languages')
html = response.read()

#Parse it with beautifulsoup
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)

langs = []

#Parse all the links.
for link in soup.find_all('a'):
    #Last link after ZPL, the last language.
    if link.get_text() == u'Top':
        break
    if link.get_text() == u'edit':
        pass
    else:
        langs.append(link.get_text())

# find u'See also'
see_also_index_ = langs.index(u'See also')
# strip out headers
langs = langs[see_also_index_+1:]

print langs