在例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
from django.db import models # Create your models here. class UserInfo(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條命令就會自己創建對應的數據庫
Python manage.py makemigrations python manage.py migrate
接下來,在views.py把用戶提交的信息寫入表, 然后讀取該表的內容放入一個列表,把這個列表發給模板引擎生成對應的html頁面
views.py
from django.shortcuts import render from django.shortcuts import HttpResponse from MyApp1 import models # Create your views here. def index(request): if request.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() return render(request,'index.html',{'data':data_list})
Index.html還是和之前一樣
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h2>This is 5th Example!</h2> <form action="/index/" method="post"> <input type="text" name="user"> <input type="email" name="email"> <input type="submit" value="Submit"> </form> <table border="1"> <th>用戶名</th> <th>郵箱</th> <tr> {% for item in data %} <td> {{ item.user }}</td> <td> {{ item.email }}</td> </tr> {% endfor %} </table> </body> </html>
最后運行
圖形工具查看一下sqlite3,確認數據已經保存
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。