1. 程式人生 > >【Django:app、mysql 、簡單的表】——基於ubuntu

【Django:app、mysql 、簡單的表】——基於ubuntu

一、初識Django

已經在ubuntu下安裝好python,建立好virtualenv虛擬安裝環境和安裝好django。

1.在家目錄下建立專案

$ mkdir yuyu                                                            #在家目錄下建立一個新的目錄
$ pyenv activate env3.6.6                                       #啟用虛擬開發環境
$ pip freeze                                                             #檢視第三方庫(檢視是否安裝好django)
$ django-admin startproject yuyuhellp                    #建立一個django專案
$ tree                                                                      #檢視專案的目錄結構

2.在pycharm下修改配置

在pycharm下,【File】—>【open】—>【找到manage.py的父目錄點選ok】—>【找到Settings下的Project:yuyuhellp】

—>【配置Project Interpreter】—>【選定env3.6.6】

配置settings.py:

  • ALLOWED_HOSTS = [ ]  改為 ALLOWED_HOSTS = ['*']    預設是本機訪問,修改後是允許任何人訪問
  • LANGUAGE_CODE = 'en-us'  改為 LANGUAGE_CODE = 'zh-hans'   指定語言是漢語
  • TIME_ZONE = 'UTC'   改為 TIME_ZONE = 'Asia/Shanghai'    指定時區亞洲上海

配置好後在Terminal裡輸入指令:

$ python manage.py runserver                         #在預設埠下執行

3.建立應用(app)

在Terminal裡輸入指令:

$ python manage.py startapp yuyuapp             #建立新的應用

在Sttings.py中新增app:

(1)配置路由:提前新增hello檢視

(2)新增檢視

[1]第一種:

[2]第二種:

4.資料庫簡單模型

安裝mysql資料庫後,在虛擬環境下$ mysql -uroot -p登入資料庫,建立新的database

【點選pycharm右側欄databases】—>【選擇連線資料庫】:

(1)配置Sttings.py中DATABASES:

(2)編寫yuyuhellp下的__init__.py:

import pymysql
pymysql.install_as_MySQLdb()

(3)編寫yuyuapp下的models.py:

class User(models.Model):
    username = models.CharField(max_length=20)
    password = models.CharField(max_length=32)

在Terminal裡輸入指令進行資料遷移:

python manage.py makemigrations                           #生成資料庫遷移檔案
python manage.py migrate                                        #生成資料庫表

重新整理後往表中新增資料:

(4)給app新增一個模板user.html:

在yuyuapp下新建一個Directory檔案名為【templates】,然後更改【Mark Directory as】為:【Template Folder】

在templates下新建user.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>列表</title>
</head>
<body>
    <table>
        <tr>
            {% for i in data %}
            <td>{{ i.username }}</td>
            <td>{{ i.password }}</td>
            {% endfor %}
        </tr>
    </table>
</body>
</html>

在views中引入from yuyuapp.models import User ,將表中資訊展示在html頁面中:

在urls.py中新增路徑:

最後在 Terminal裡輸入指令執行並在瀏覽器中查看錶中資料。

二、Django模型的應用(增刪改查)

在上述一中進行到4.3models.py,我們用新的方式新增資料。

三、表的關係(一對一,一對多,多對多)

唯一索引unique就是一對一,mysql外來鍵就是一對多。

建立一個user表:

建立一個article表:並新增外來鍵au_uid,user表是主表,article表是從表,關係是一對多

 建立一個detail表:先新增外來鍵dtou_uid,user表是主表,detail表是從表;

接著設定 user表和detail表的關係為一對一:

用truncate清空detail表(與delete相比,truncate能清空自增id);

為detail表建立唯一索引ud_uid;

show index from detail  \G 能檢視detail表的索引;

往detail表中新增資料,新增相同uid會報錯,即關係為一對一;

如何刪除主鍵中的一條記錄?(因為預設是 no action 或 restrict ,無法更新或刪除主表)

答:將所有從表中的外來鍵刪除,重新建立新的外來鍵設定方式cascade(從父表中刪除或更新對應的行,同時自動的刪除或更新子表中匹配的行)

建立一個goods表,再建立一個shopcard表(中間表),再為shopcard新增兩個外來鍵(uid,gid),就是多對多關係