首页 > 解决方案 > views.py 中的“SyntaxError:无效语法”

问题描述

在我的应用程序中,当用户填写输入时,我应该向他/她发送电子邮件并创建该用户的实例。但由于以下错误,我无法运行我的应用程序:

Exception in thread django-main-thread:
Traceback (most recent call last):
  ...
  File "/Users/progbash/Desktop/pragmatech/pragmatechproject/pragmatechproject/urls.py", line 21, in <module>
    path('', include('pragmatechapp.urls')),
  File "/Users/progbash/Desktop/pragmatech/denvx/lib/python3.7/site-packages/django/urls/conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "/Users/progbash/Desktop/pragmatech/denvx/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/progbash/Desktop/pragmatech/pragmatechproject/pragmatechapp/urls.py", line 2, in <module>
    from . import views
  File "/Users/progbash/Desktop/pragmatech/pragmatechproject/pragmatechapp/views.py", line 26
    return render(request, 'pragmatechapp/index.html', context)
         ^
SyntaxError: invalid syntax

这是我的views.py

def index(request): 
    context = {
        'applicants': Applicant.objects.all()
    }
    if request.method == "POST":
        applicant_name = request.POST.get('name')
        applicant_email = request.POST.get('email')
        applicant_phone = request.POST.get('phone')
        subject = 'Thank you.'
        message = 'Hi, ' + str(applicant_name)
        from_email = settings.SERVER_EMAIL
        recipient_list = [applicant_email]
        send_mail(subject, message, from_email, recipient_list)
        if request.POST.get('email'):
            Applicant.objects.create(
                name = request.POST.get('name'),
                email = request.POST.get('email'),
                phone = request.POST.get('phone')

    return render(request, 'app/index.html', context)

还有我的urls.py文件:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index')
]

Lorem Ipsum 只是印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是行业的标准虚拟文本,当时一位不知名的印刷商采用了一种类型的厨房并将其加扰以制作一本类型样本书。它不仅经历了五个世纪,而且经历了电子排版的飞跃,基本保持不变。它在 1960 年代随着包含 Lorem Ipsum 段落的 Letraset 表的发布而流行起来,最近还随着 Aldus PageMaker 等桌面出版软件(包括 Lorem Ipsum 的版本)而普及。

标签: pythondjangopython-3.x

解决方案


只需从索引视图更改您的以下部分...

你在那边缺少完整的括号......

if request.POST.get('email'):
        Applicant.objects.create(
            name = request.POST.get('name'),
            email = request.POST.get('email'),
            phone = request.POST.get('phone')
        )

推荐阅读