Django 【第四篇】ORM數據庫基礎
阿新 • • 發佈:2018-02-21
創建 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數據庫基礎