1. 程式人生 > >Django 【第四篇】ORM數據庫基礎

Django 【第四篇】ORM數據庫基礎

創建 local bug 創建表 dev 查看 src 數據 add

一、ORM介紹

映射關系:

  表名 --------------------》類名

  字段--------------------》屬性

  表記錄-----------------》類實例化對象

ORM的兩大功能:

  操作表:

    - 創建表

    - 修改表

    - 刪除表

  操作數據行:

    - 增刪改查

ORM利用pymysql第三方工具鏈接數據庫

Django沒辦法幫我們創建數據庫,只能我們創建完之後告訴它,讓django去鏈接

二、創建表之前的準備工作

一、自己創建數據庫

二、在settings裏面配置mysql數據庫鏈接

  sqlite3------改為mysql

# 修改django默認的數據庫的sqlite3為mysql
DATABASES = {
    ‘default‘: {
            ‘ENGINE‘: ‘django.db.backends.mysql‘, #通過這個去鏈接mysql
            ‘NAME‘: ‘djangotsgl‘,
            ‘USER‘:‘root‘,
            ‘PASSWORD‘:‘123456‘,
            ‘HOST‘:‘localhost‘,
            ‘PORT‘:‘3306‘,
        }
    }            

  這樣寫上以後django會默認的就去鏈接數據庫,這時你會看到報錯了,那麽解決的辦法就是下面的這樣

三、app01中的--init--文件

import pymysql
pymysql.install_as_MySQLdb()

四、創建數據庫表

models.py

class Book(models.Model): #必須要繼承的
    nid = models.AutoField(primary_key=True)  #自增id(可以不寫,默認會有自增id)
    title = models.CharField(max_length=32)
    publishDdata = models.DateField()  #出版日期
    author = models.CharField(max_length=32)
    price = models.DecimalField(max_digits=5,decimal_places=2)  #一共5位,保留兩位小數

執行命令創建:(需要記住的!!!) 

python3 manage.py makemigrations   創建腳本
python3 manage.py migrate   遷移

具體例子實現

model.py

技術分享圖片

urls.py

技術分享圖片

views.py

技術分享圖片

template /index.html(用來渲染數據的模版)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width">
    <title>Title</title>
    <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
    <script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    <style>
        table{
            margin-top: 50px;
        }
    </style>
</head>
<body>
<div class="containers">
    <div class="row">
        <div class="col-md-9 col-md-offset-2">
            <table class="table table-hover">
                <thead>
                    <tr>
                        <th>編號</th>
                        <th>書名</th>
                        <th>出版日期</th>
                        <th>作者</th>
                        <th>價錢</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                {% for book in book_list %}
                    <tr>
                            <td>{{ book.nid }}</td>
                            <td>{{ book.title }}</td>
                            <td>{{ book.publishDdata|date:‘Y-m-d‘ }}</td>
                            <td>{{ book.author }}</td>
                            <td>{{ book.price }}</td>
                            <td>
                                <a href="/del/{{ book.nid }}"><button class="btn btn-danger">刪除</button></a>
                                <a href="/edit/{{ book.nid }}"><button class="btn btn-success">編輯</button></a>
                                <a href="/add/"><button class="btn btn-primary">添加</button></a>
                            </td>
                    </tr>
                {% endfor %}
                </tbody>
            </table>
        </div>
    </div>
</div>
</body>
</html>

  

技術分享圖片

五、查看數據庫的sql語句(加在settings.py)

查看數據庫執行代碼
LOGGING = {
    ‘version‘: 1,
    ‘disable_existing_loggers‘: False,
    ‘handlers‘: {
        ‘console‘:{
            ‘level‘:‘DEBUG‘,
            ‘class‘:‘logging.StreamHandler‘,
        },
    },
    ‘loggers‘: {
        ‘django.db.backends‘: {
            ‘handlers‘: [‘console‘],
            ‘propagate‘: True,
            ‘level‘:‘DEBUG‘,
        },
    }
}

Django 【第四篇】ORM數據庫基礎