django之ORM數據庫操做

映射關係:

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

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

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

ORM的兩大功能:

  操做表:mysql

    - 建立表git

    - 修改表sql

    - 刪除表數據庫

  操做數據行:django

    - 增刪改查bootstrap

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

Django沒辦法幫咱們建立數據庫,只能咱們建立完以後告訴它,讓django去連接

2、建立表以前的準備工做

1、本身建立數據庫

2、在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會默認的就去連接數據庫,這時你會看到報錯了,那麼解決的辦法就是下面的這樣

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

import pymysql
pymysql.install_as_MySQLdb()

4、建立數據庫表

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>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 6     <meta name="viewport" content="width=device-width">
 7     <title>Title</title>
 8     <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
 9     <script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
10     <style>
11         table{
12             margin-top: 50px;
13         }
14     </style>
15 </head>
16 <body>
17 <div class="containers">
18     <div class="row">
19         <div class="col-md-9 col-md-offset-2">
20             <table class="table table-hover">
21                 <thead>
22                     <tr>
23                         <th>編號</th>
24                         <th>書名</th>
25                         <th>出版日期</th>
26                         <th>做者</th>
27                         <th>價錢</th>
28                         <th>操做</th>
29                     </tr>
30                 </thead>
31                 <tbody>
32                 {% for book in book_list %}
33                     <tr>
34                             <td>{{ book.nid }}</td>
35                             <td>{{ book.title }}</td>
36                             <td>{{ book.publishDdata|date:'Y-m-d' }}</td>
37                             <td>{{ book.author }}</td>
38                             <td>{{ book.price }}</td>
39                             <td>
40                                 <a href="/del/{{ book.nid }}"><button class="btn btn-danger">刪除</button></a>
41                                 <a href="/edit/{{ book.nid }}"><button class="btn btn-success">編輯</button></a>
42                                 <a href="/add/"><button class="btn btn-primary">添加</button></a>
43                             </td>
44                     </tr>
45                 {% endfor %}
46                 </tbody>
47             </table>
48         </div>
49     </div>
50 </div>
51 </body>
52 </html>
圖片內容具體

 

 5、查看數據庫的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',
        },
    }
}
相關文章
相關標籤/搜索