Django 入门学习(3)
在例4的基础上,我希望直接保存数据到数据库中。 Django自带了一个sqlite的数据库,已经配置好了 可以直接使用。使用方式和sqlalchemy类似,相当于一个内置的ORM框架。
settings.py 默认已经绑定了sqlite3
DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','NAME':os.path.join(BASE_DIR,'db.sqlite3'),}}
根据MTV结构,数据库应该在model.py里面创建,如下所示
model.py
fromdjango.dbimportmodels#Createyourmodelshere.classUserInfo(models.Model):user=models.CharField(max_length=32)email=models.CharField(max_length=32)
在settings.py里面需要注册App
settings.py
INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','MyApp1']
之后运行下面2条命令就会自己创建对应的数据库
Pythonmanage.pymakemigrationspythonmanage.pymigrate
接下来,在views.py把用户提交的信息写入表, 然后读取该表的内容放入一个列表,把这个列表发给模板引擎生成对应的html页面
views.py
fromdjango.shortcutsimportrenderfromdjango.shortcutsimportHttpResponsefromMyApp1importmodels#Createyourviewshere.defindex(request):ifrequest.method=='POST':u=request.POST.get('user')e=request.POST.get('email')models.UserInfo.objects.create(user=u,email=e)data_list=models.UserInfo.objects.all()returnrender(request,'index.html',{'data':data_list})
Index.html还是和之前一样
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><h2>Thisis5thExample!</h2><formaction="/index/"method="post"><inputtype="text"name="user"><inputtype="email"name="email"><inputtype="submit"value="Submit"></form><tableborder="1"><th>用户名</th><th>邮箱</th><tr>{%foritemindata%}<td>{{item.user}}</td><td>{{item.email}}</td></tr>{%endfor%}</table></body></html>
最后运行
图形工具查看一下sqlite3,确认数据已经保存
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。