1. 程式人生 > >Django讀取Mysql資料並顯示在前端

Django讀取Mysql資料並顯示在前端

前言:

  由於使用Django框架來做網站,需要動態顯示資料庫內的資訊,所以讀取資料庫必須要做,寫此博文來記錄。
  接下來分兩步來做這個事,新增網頁,讀取資料庫;

一、新增網頁

  首先按新增網頁的步驟新增網頁,我的網頁名為table.html, app名為web;
  table.html放到相應目錄下;
  forms.py檔案提前寫好;

修改views.py,做好檢視

from django.shortcuts import render
from web import forms

def table(request):
    table_form=forms.SignupForm()
    return
render(request,'table.html',{'form':table_form})

修改url.py,新增路徑

from django.conf.urls import url,include
from django.contrib import admin
from web import views

urlpatterns = [
   url(r'^signup/$',views.signup,name='signup'),
   url(r'^index/$',views.index,name='index'),
   url(r'^table/$',views.table,name='table'
) #這個是table的 ]

至此可以訪問
http://127.0.0.1:8000/web/table/(http//127.0.0.1:8000/app/index)
正常顯示網頁內容。

二、讀取Mysql並顯示

  在models.py中建立資料庫 Employee,並設定name列(預設會有id列,為主鍵);

from __future__ import unicode_literals
from django.db import models

# Create your models here.
class Employee(models.Model):
     name=models.CharField(max_length=20
)

儲存並同步資料庫

python manage.py syncdb

這時進入到mysql中,找到我們django設定的資料庫,進入其中,
看到如下表:

圖片描述

          圖1 資料庫表項

最後一個web_employee為我們剛建立的表(web是我的app名字,字首是自動加的);
使用insert語句插入相應資料,顯示如下:

圖片描述

          圖2 employee表
          
  ok資料已經新增完畢,接下來是在網頁端顯示,網頁通過前面的配置已經可以正常顯示,現在加入顯示資料庫資訊。
首先修改views.py,一樣,檢視的修改都在此檔案

from django.shortcuts import render
from web import forms

from models import Employee       #插入employee表
from django.shortcuts import HttpResponseRedirect,Http404,HttpResponse,render_to_response
# Create your views here.
def table(request):
    table_form=forms.SignupForm()   #樣式 ,在forms.py裡配置好了
    names=Employee.objects.all()    #獲取我們的資料庫資訊到names裡
    #return render(request,'table.html',{'form':table_form})
    return render_to_response("table.html",locals()) #必須用這個return

變數names讀取了我們的資料,接下來到table.html

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Upload Successfully</title>
    </head>
    <body>
        <p>學生名單</p>
        {% for name in names %}
        <p>{{name.id}}&nbsp&nbsp&nbsp:&nbsp&nbsp&nbsp{{name.name}}</p>
        <br>
        {% endfor %}
    </body>
</html>

用迴圈讀取names裡面的資訊,name.idname.name 是我們表中的兩列,如上面圖2。

最終結果如下:
圖片描述
         
            圖3 效果圖