0

Django モデルを作成/編集するためのツールを開発しています。https://github.com/timothyclemans/django-admin-models-editorを参照してください。

Python コードを解析するための推奨される方法は何ですか? たくさんの正規表現を作成し、多くの if then を実行する必要がありますか?

以下のコードは、モデル名とフィールド名を取得します。

code_from_input = request.POST['code'].split('\n')[0]
def_lines = ''
if '    def' in request.POST['code']:
    for i, line in enumerate(request.POST['code'].split('\n')):
        if line.startswith('    def'):
            def_lines = '\n'.join(request.POST['code'].split('\n')[i:])
            break
last_code_from_input = request.POST['last_code'].split('\n')[0]
# check if model name in source changed
model_name_in_last_source = ''
model_name_in_code = ''
if last_code_from_input.startswith('class'):
    m = re.match(r"class (\w+)\(models.Model\):", last_code_from_input)
    try:
        model_name_in_last_source = m.group(1)
    except:
        pass
if code_from_input.startswith('class'):
    m = re.match(r"class (\w+)\(models.Model\):", code_from_input)
    try:
        model_name_in_code = m.group(1)
    except:
        pass
if model_name_in_last_source != model_name_in_code:
    model_name = model_name_in_code
else:
    model_name = request.POST['name']

django 管理モデル エディター

4

1 に答える 1