如果準備工作: 1.Python 2.Django 3.Git 安裝Python: 官網下載 安裝Django: 現在正式開始創建一個名為my_blog的Django項目: 建立Django app(article): 到目前為止的項目結構如下: 併在my_blog/my_blog/setting. ...
如果準備工作:
1.Python
2.Django
3.Git
安裝Python:
官網下載
安裝Django:
#安裝最新版本的Django $ pip install django #或者指定安裝版本 pip install -v django==1.7.1
現在正式開始創建一個名為my_blog
的Django項目:
$ django-admin.py startproject my_blog
建立Django app(article):
$ python manage.py startapp article
到目前為止的項目結構如下:
── article │ ├── __init__.py │ ├── admin.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py ├── db.sqlite3 ├── manage.py ├── my_blog ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-34.pyc │ ├── settings.cpython-34.pyc │ ├── urls.cpython-34.pyc │ └── wsgi.cpython-34.pyc ├── settings.py ├── urls.py └── wsgi.py
併在my_blog/my_blog/setting.py下添加新建app:
INSTALLED_APPS = ( ... 'article', #這裡填寫的是app的名稱 )
運行程式!啟動Django中的開發伺服器:
$ python manage.py runserver
如果出現以上界面則說明運行成功。
命令總結
python manage.py <command> [options] #Django Command python manange.py -h幫助文檔 django-admin.py startproject my_blog #創建項目 python manage.py startapp article #創建app
Django Model:
- 每一個
Django Model
都繼承自django.db.models.Model
- 在
Model
當中每一個屬性attribute
都代表一個database field - 通過
Django Model API
可以執行資料庫的增刪改查, 而不需要寫一些資料庫的查詢語句
設置資料庫:
Django項目建成後, 預設設置了使用SQLite資料庫, 在my_blog/my_blog/setting.py中可以查看和修改資料庫設置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
還可以設置其他資料庫, 如MySQL, PostgreSQL
, 現在為了簡單, 使用預設資料庫設置。
創建models:
在my_blog/article/models.py下編寫以下代碼
from django.db import models # Create your models here. class Article(models.Model) : title = models.CharField(max_length = 100) #博客題目 category = models.CharField(max_length = 50, blank = True) #博客標簽 date_time = models.DateTimeField(auto_now_add = True) #博客日期 content = models.TextField(blank = True, null = True) #博客文章正文 #python2使用__unicode__, python3使用__str__ def __str__(self) : return self.title class Meta: #按時間下降排序 ordering = ['-date_time']
其中__str__(self)
函數Article對象要怎麼表示自己, 一般系統預設使用<Article: Article object>
來表示對象, 通過這個函數可以告訴系統使用title欄位來表示這個對象
CharField
用於存儲字元串, max_length設置最大長度TextField
用於存儲大量文本DateTimeField
用於存儲時間, auto_now_add設置True表示自動設置對象增加時間