Python——django避坑篇(python对应django版本)

本文讨论了在使用Django框架时遇到的一些错误,特别是关于'generator raised StopIteration'的问题。作者指出,这可能是由于Django版本过旧,不兼容Python 3.7以上版本导致的。为避免此类问题,文章提供了Python与Django的适配版本对照表,并建议在开始项目前确认正确的版本匹配。此外,还提及了Python与MySQL数据库的版本对应参考。

前言:

       django框架和python不必多说,写起代码来功能实现速度非常快,但是对于某些定制化修改不可避免有些小坑在其中,本篇将简单聊一聊python对应django版本的坑;

具体事例:

       首先,相信使用django的朋友或多少碰到过以下报错:

       前面写了好几个接口,功能实现的很顺利,有一个接口需要处理上传的图片,或者写完接口想要从管理面手动插入几条测试数据,然后接口一测或者测试数据一保存就蹦出来了500的状态码,然后报错信息主要就是下边的样子:

Exception Type:	RuntimeError
Exception Value:	
generator raised StopIteration
Exception Location:	/Users/dongchao/.virtualenvs/py_django/lib/python3.7/site-packages/django/http/multipartparser.py in read, line 337
Python Executable:	/Users/dongchao/.virtualenvs/py_django/bin/python
Python Version:	3.7.4

相关分析:

        从报错状态来看就有点莫名其妙,然后generator raised StopIteration然后看相关代码也是框架中的代码,首先回去看一下自己调用接口的代码,完全没有使用迭代器,使用框架传递的参数也是完全正确;这时候思考下才想起来上网上找找答案,搜索了半天,不知道你会从哪里找到答案,我一般最终答案总在stackoverflow找到的答案:反正答案总是,你的django版本太旧了;

Your Django is very old and you need to

好的,下面是Python中使用Django进行通讯录制作的步骤: 1. 创建Django项目 使用以下命令创建Django项目: ``` django-admin startproject myaddressbook ``` 2. 创建Django应用 使用以下命令创建Django应用: ``` python manage.py startapp contacts ``` 3. 配置数据库 打开myaddressbook/settings.py文件,配置数据库: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } ``` 这里我们使用sqlite3数据库,如果你想使用其他数据库,需要在此处进行相应的配置。 4. 创建模型 在contacts/models.py文件中定义Contact模型: ```python from django.db import models class Contact(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) email = models.EmailField() phone = models.CharField(max_length=20) def __str__(self): return f'{self.first_name} {self.last_name}' ``` 5. 迁移数据库 运行以下命令迁移数据库: ``` python manage.py makemigrations python manage.py migrate ``` 6. 创建视图 在contacts/views.py文件中创建ContactListView视图: ```python from django.views.generic import ListView from .models import Contact class ContactListView(ListView): model = Contact ``` 7. 创建URL 在myaddressbook/urls.py文件中创建URL: ```python from django.urls import path from contacts.views import ContactListView urlpatterns = [ path('', ContactListView.as_view(), name='contact_list'), ] ``` 8. 运行服务器 使用以下命令运行Django服务器: ``` python manage.py runserver ``` 现在你可以在浏览器中访问http://127.0.0.1:8000/,就可以看到通讯录列表了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值