###### tags: `django` # django入門(六) — 簡單範例(4)-資料模型與填充程式 ## IT邦連結(需使用電腦版瀏覽器):[點我前往](https://ithelp.ithome.com.tw/users/20145754/articles) 全部文章: [django入門(一) — 介紹與設定開發環境](https://hackmd.io/@aroncode/SkVeqBO2K) [django入門(二) — 建立資料庫與專案](https://hackmd.io/@aroncode/rkqgL_unY) [django入門(三) — 簡單範例(1)-建立app](https://hackmd.io/@aroncode/H1qirFdhF) [django入門(四) — 簡單範例(2)-範本與範本繼承](https://hackmd.io/@aroncode/rkFuiwKnY) [django入門(五) — 簡單範例(3)-靜態檔](https://hackmd.io/@aroncode/ByL4dFO2Y) [django入門(六) — 資料模型與填充程式](https://hackmd.io/@aroncode/BJot2iRnF) [django入門(七) — Django ORM操作](https://hackmd.io/@aroncode/SJec_hA3Y) ## 建立資料表 stock/models.py ``` class Stock(models.Model): name = models.CharField(max_length=128, unique=True) content = models.TextField() price = models.FloatField() def __str__(self): return self.name ``` ## 資料庫遷移 makemigrations會產生遷移檔用來產生資料表。 ``` 右鍵點擊專案 → Django → Custom Command → Command: makemigrations → OK ``` 會看到 Migrations for 'stock': stock\migrations\0001_initial.py - Create model Stock 之後接著 ``` 右鍵點擊專案 → Django → Migrate ``` ## 填充程式 這裡我們已經成功建立資料表了 我們可以先寫一個填充程式,來看看我們的資料模型是否正確。 專案目錄建立一個populate的資料夾 下面建立三個py檔分別為__init__.py、base.py、stock.py populate/base.py ``` import os os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'demo.settings') import django django.setup() ``` populate/stock.py ``` from populate import base from stock.models import Stock stocks = ['台積電', '聯電'] prices = [672.00, 62.70] contents = ['台積電是臺灣一家從事晶圓代工的半導體製造廠,總部位於新竹科學園區,主要廠房則分布於新竹市、臺中市、臺南市。','聯華電子股份有限公司,簡稱聯電,英文全名「United Microelectronics Corporation」'] def populate(): print('Stock ... ', end='') Stock.objects.all().delete() for i in range(len(stocks)): stock=Stock() stock.name=stocks[i] stock.content=contents[i] stock.price=prices[i] stock.save() print("success") if __name__ == '__main__': populate() ``` 接著我們進入虛擬環境(忘記怎麼進去可以看[django入門(二) — 建立資料庫與專案](https://hackmd.io/@aroncode/rkqgL_unY)) 進入虛擬環境後,再到專案目錄。 ``` (stockVenv)C: ..\web\workspace\demo>python -m populate.stock ``` 看到success就代表我們成功填充資料了! ## 顯示資料 stock/views.py把stock改成下面的code ``` from django.shortcuts import render from stock.models import Stock def stock(request): stocks = Stock.objects.all() context = {'stock':'stock page', 'stocks':stocks} return render(request, 'stock/stock.html', context) ``` stock/templates/stock/stock.html 將下方code放到block content內 ``` <br> {% for stock in stocks %} <div align="left"> <h3>名稱:{{ stock.name }}</h3> <p>當前股價:{{ stock.price }}</p> <p>簡介:{{ stock.content }}<p> <hr> </div> {% endfor %} ``` 重新啟動伺服器,回到瀏覽器即可看到成果。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up