Skip to content

Practice04 Menu Page with SQL

Englam edited this page May 22, 2017 · 1 revision

#Sqlite的使用方法,用Menu.html當範例



#開啟project

django-admin.py startproject my_menu_sql



#Run http server

cd /Documents/python/Django/practices/my_menu_sql

or

cd my_menu_sql/

python manage.py runserver

url = http://127.0.0.1:8000/



#Create a app

example:

python manage.py startapp restaurents



#建立templates

建立templates folder在restaurant, 不需要在settings加templates加路徑

在restaurant -> templates把menu and menu2.html 放入



#設定settings.py

要把INSTALLED_APPS 加入 restaurents ,因為它是一個app



#設定urls.py

要變成這樣

url(r'^menu/', menu),

url(r'^menu2/', menu2),



#設定modules.py

裡面加入(詳細可參考原始碼):

class Restaurant(models.Model):

class Food(models.Model):



#確認Models裡的語法

python manage.py XXXX

example : python manage.py check

用來確認model裡的語法是否有錯



#確認Migration

python manage.py makemigrations XXXX

example : python manage.py makemigrations restaurants

會確認migration,如果模組有異則產生新的migration,並產生模組



#確認更改的Module狀態

在migration folder裡面可以看到第一次 model as 0001_initial.py

dependencies ==根據XXX 做了異動

operations ==實際模組的運行



#Modules to SQL language(將Modules寫入到 sqlite裡面)

python manage.py sqlmigrate restaurants XXXX

example :

python manage.py sqlmigrate restaurants 0001

python manage.py sqlmigrate restaurants 0002

To database:

python manage.py migrate restaurants 0002



#views.py加入modules

from django.shortcuts import render_to_response

from restaurants.models import Restaurant, Food

def menu(request):

restaurants = Restaurant.objects.all()

return render_to_response('menu.html',locals())

def menu2(request):

restaurants = Restaurant.objects.all()

return render_to_response('menu2.html',locals())



#確認SQL

可以從sqlite裡面,確認modules是否有被寫入進去

在每個project裡面有都sqlite file (default就建立起來的)

Clone this wiki locally