1. 程式人生 > >Django學習筆記008-學生管理系統(Django實現)-查詢資料庫

Django學習筆記008-學生管理系統(Django實現)-查詢資料庫

資料庫配置:

DATABASES = {
    'default': {
        ##資料庫引擎
        'ENGINE': 'django.db.backends.mysql',
        ##資料庫主機地址
        'HOST': '127.0.0.1',
        ##資料庫埠號
        'PORT': 3306,
        ##資料庫名字
        'NAME': 'djangodb',
        ##連線資料的使用者名稱
        'USER': 'root',
        ##連線資料的密碼
        'PASSWORD': 'root',
    }
}

編輯應用的_init_.py檔案

import pymysql
pymysql.install_as_MySQLdb()

編輯應用的models.py檔案建立資料庫表結構

from django.db import models

# Create your models here.

class Stuinfo(models.Model):
    id = models.IntegerField(primary_key=True);
    name=models.CharField(max_length=10);
    math=models.DecimalField(decimal_places=1);
    chinese=models.DecimalField(decimal_places=1);
    english=models.DecimalField(decimal_places=1);
    total=models.DecimalField(decimal_places=1);

在mysql中建立資料庫後進行遷移

python manage.py makemigrations <應用名稱>

python manage.py migrate

 

從上圖中可以看出,Django預設會以APP名為資料表字首,以類名為資料表名!

 

下面實現:顯示所有資料表內容(已經手動建立了資料)

views.py

from django.shortcuts import render
from stusys import models

def stuinfo(request):
    stuinfo_list_obj = models.Stuinfo.objects.all()
    return render(request,'info.html',{'stuinfo_list':stuinfo_list_obj})

urls.py

from django.contrib import admin
from django.urls import path
from stusys import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',views.stuinfo),
]

html如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>學生成績管理系統</title>
</head>
<body>
<table>
    <thead>
       <tr>
           <td>學號</td>
           <td>姓名</td>
           <td>數學</td>
           <td>語文</td>
           <td>英文</td>
           <td>總分</td>
       </tr>
    </thead>
    <tbody>
        {% for stuinfo in stuinfo_list %}
            <tr>
               <td>{{ stuinfo.id }}</td>
               <td>{{ stuinfo.name }}</td>
               <td>{{ stuinfo.math}}</td>
               <td>{{ stuinfo.chinese }}</td>
               <td>{{ stuinfo.english }}</td>
               <td>{{ stuinfo.total }}</td>
            </tr>
        {% endfor %}

    </tbody>
</table>
</body>
</html>

執行結果如下: