1. 程式人生 > >python自動化運維學習第十六天--models基本使用和基本命令

python自動化運維學習第十六天--models基本使用和基本命令

modules基本使用

models是資料庫的api,可以對資料庫進行增刪改查等操作。
學習階段使用的資料庫是sqllite,使用其他資料庫可以修改settings.py檔案中的配置項。使用資料庫前需要在資料庫中提前建立一個庫,表可以通過models建立。
使用models.py檔案建立一個表

from django.db import models

class UserInfo(modules.model):       #建立一個類,類名會作為表名的一部分
    username = models.CharField(max_length=32,null=True)
#建立一個表中的欄位,欄位名為username,char型別,長度32,可以為空 password = models.CharField(max_length=32,null=True) #建立一個表中的欄位,欄位名為password,char型別,長度32,可以為空

然後在pycharm下邊的terminal介面輸入如下命令

>>>python manage.py makemigrations  #執行的命令
Migrations for 'demo':            #輸出的內容
  demo\migrations\0001_initial.py
    - Create model UserInfo

再執行
python manage.py migrate
建立了一個有3個欄位的表,其中第一個欄位名為id,是預設建立的自增欄位。
在這裡插入圖片描述
執行後會在左側專案下建立一個db.sqllite3的檔案,把它拖到右側的database下
在這裡插入圖片描述這樣就能看到建立的資料庫表了
在這裡插入圖片描述
其中demo_userinfo是建立的表,表名為application name加下劃線加建立的類名組成。其他都是django預設建立的表。
修改前邊寫的views.py檔案

from django.shortcuts import render,HttpResponse,redirect
from demo import models       #匯入剛才寫的demo包下的models模組
def login(request): a = ['biaoti','geshi',0,1] if request.method=='GET': obj_li = models.UserInfo.objects.all() #obj_li為QuerySetList,後邊的all表示表中所有資料,每個QuerySet就是資料庫中一條資料的物件 #obj_li = models.UserInfo.objects.filter(username='test') #根據條件查詢,相當於sql中的where,obj_li拿到的資料都是QuerySetList #for obj in obj_li: # print("username: ", obj.username) # print("password: ", obj.password) return render(request, 'login.html', locals())

修改login.html檔案

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>{{ a.0 }}</h1>       <!--讀取views.py檔案中的a變數第0個值,即列表切片的第0個值-->

    {% for item in obj_li %}     <!--迴圈讀取views.py檔案中obj_li物件-->
        <div>
        <span>{{ item.username }}</span>    <!--讀取每個物件的username欄位值-->
        <span>{{ item.password }}</span>    <!--讀取每個物件的password欄位值-->
        </div>
    {% endfor %}
</body>
</html>

在資料庫表中新增一些資料,啟動django,訪問http://127.0.0.1:8000/login/ 就是出現如下內容
在這裡插入圖片描述

基本命令

Django基本命令,在終端執行,也可以在pycharm的terminal中執行

  1. 建立一個django project
    django-admin.py startproject mysite

  2. 在mysite目錄下建立應用,比如blog:
    python manage.py startapp blog
    在專案下新增應用時就可以執行這條命令

  3. 啟動django專案
    python manage.py runserver ip:port
    ip和port可以不寫,預設是127.0.0.1:8000

  4. 同步更改資料庫表或欄位
    python manage.py syncdb
    注意:Django 1.7.1 及以上的版本需要用以下命令

    python manage.py makemigrations
    python manage.py migrate
    

    這種方法可以建立表,當你在models.py中新增了類時,執行它就可以自動在資料庫中建立表了,不用手動建立。

  5. 清空資料庫
    python manage.py flush
    此命令會詢問是 yes 還是 no, 選擇 yes 會把資料全部清空掉,只留下空表。

  6. 建立超級管理員

    python manage.py createsuperuser
     # 按照提示輸入使用者名稱和對應的密碼就好了郵箱可以留空,使用者名稱和密碼必填
     # 修改使用者密碼可以用:
    python manage.py changepassword username
  1. Django 專案環境終端
    python manage.py shell
    一般除錯時使用
  2. Django 專案環境終端
    python manage.py dbshell
    同上條
  3. 更多命令
    python manage.py
  4. static配置
#STATIC檔案可以配置STATICFILES_DIRS,指定額外的靜態檔案儲存位置。
    #  STATIC_URL的含義與MEDIA_URL類似。
    # ----------------------------------------------------------------------------
    #注意1:
        #為了後端的更改不會影響前端的引入,避免造成前端大量修改
        
        STATIC_URL = '/static/'               #引用名
        STATICFILES_DIRS = (
            os.path.join(BASE_DIR,"statics")  #實際名 ,即實際資料夾的名字
        )

        #django對引用名和實際名進行對映,引用時,只能按照引用名來,不能按實際名去找
        #<script src="/statics/jquery-3.1.1.js"></script>
        #------error-----不能直接用,必須用STATIC_URL = '/static/':
        #<script src="/static/jquery-3.1.1.js"></script>

    #注意2(statics資料夾寫在不同的app下,靜態檔案的呼叫):

        STATIC_URL = '/static/'

        STATICFILES_DIRS=(
            ('hello',os.path.join(BASE_DIR,"app01","statics")) ,
        )

        #<script src="/static/hello/jquery-1.8.2.min.js"></script>

    #注意3:
        STATIC_URL = '/static/'
        {% load staticfiles %}
       # <script src={% static "jquery-1.8.2.min.js" %}></script>