1 Django安裝和配置
為避免Python版本沖突,依然使用visual env來開發,安裝Django僅需要一條pip命令即可搞定pip install django
。
查看安裝版本Django-1.10.3-final-0
~$ python
>>> import django
>>> django.VERSION
(1, 10, 3, u'final', 0)
Django從項目搭建,到ORM,再到服務的部署,集成了一套自己的shell命令,第一個要用到的命令就是django-admin.py
,讓我們來看看Django都有哪些功能或者命令
- django-admin check [app_label [app_label ...]]
檢查項目完整性
- django-admin compilemessages
把.po文件編譯成.mo - django-admin createcachetable
為數據庫創建緩存表 - django-admin dbshell
進入到數據庫的命令行,何種數據庫依據setting文件的ENGINE選項 - django-admin diffsettings
查看setting文件的差異 - django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]
導出數據庫數據,可以導出成為json文件 - django-admin flush
清空數據庫數據 - django-admin inspectdb [table [table ...]]
指定某個數據庫表,生成models.py文件 - django-admin loaddata fixture [fixture ...]
導入數據庫文件到數據庫中,可以從json文件導入 - django-admin makemessages
創建國際化文件 - django-admin makemigrations [app_label [app_label ...]]
按照指定app的model生成數據庫同步文件,一般放在app下面的migrations文件夾 - django-admin migrate [app_label] [migration_name]
同步Django模型和數據庫 - django-admin runserver [addrport]
啟動Django自帶的服務器,需指定IP和端口號,默認為127.0.0.1:8000 - django-admin shell
--interface {ipython,bpython,python}, -i {ipython,bpython,python}
進入Python交互界面,例如Python - django-admin showmigrations [app_label [app_label ...]]
查看model和數據庫交互的同步腳本 - django-admin sqlflush
查看flush命令的sql腳本 - django-admin sqlmigrate app_label migration_name
查看migrate操作的sql腳本 - django-admin sqlsequencereset app_label [app_label ...]
查看對指定app進行sequence重置的sql腳本 - django-admin squashmigrations app_label [start_migration_name] migration_name
- django-admin startapp name [directory]
創建app,可以自定義文件夾位置,默認創建一系列的models.py,views.py文件 - django-admin startproject name [directory]
創建Django項目工程 - django-admin test [test_label [test_label ...]]
執行app的測試程序 - django-admin testserver [fixture [fixture ...]]
啟動服務器,對導入服務器的數據進行測試 - python manage.py changepassword [<username>]
修改后臺管理員密碼 - python manage.py createsuperuser
創建管理員賬戶
manage.py存在于每個Django工程根目錄下面,可以在工程目錄下直接使用manage.py
命令,代替django-admin
。
2 創建新項目
DjangoProj $ django-admin startproject MyBlog
DjangoProj $ cd MyBlog
MyBlog $ tree
工程根目錄下會有一個同名的目錄,這個目錄存放的是一些全局的配置文件,每一個都很重要,settings.py存放app、數據源、模板以及中間件等配置信息,urls.py存放的是整個網站url信息,實現接收響應,wsgi.py配合服務器的配置。
3 創建一個app
MyBlog $ python manage.py startup welcome
工程目錄下多了一個文件夾welcome,這時候可以使用我們熟悉的pycharm來編輯代碼了
- 首先編輯app目錄下的視圖文件views.py
# views.py
# -*- coding:utf-8 -*-
from django.http import HttpResponse
def index(request):
return HttpResponse(u'歡迎!')
request和response這個不陌生吧,這個程序有點類似Java里面的servlet。
- 編輯與視圖關聯的urls.py文件,這個文件起到路由轉發的作用,其本身就是管理一個列表
# urls.py
# -*- coding:utf-8 -*-
from django.conf.urls import url
from django.contrib import admin
from welcome import views as welcome_views
urlpatterns = [
url(r'^admin/', admin.site.urls), #管理員頁面入口
url(r'^$', welcome_views.index), #網站首頁
]
- 最后把新創建的app注冊到settings.py中
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'welcome'
]
運行內置服務器即可構建最簡單的網站
MyBlog $ python manage.py runserver 127.0.0.1:8080
2 使用數據庫并實現MVC
確保MySQL客戶端已安裝,如果沒加入paths可以用以下方法
- 針對全局用戶
~$ sudo touch /etc/paths.d/mysql
root下面編輯文件,加入路徑/usr/local/mysql/bin- 針對單個用戶
~$ vim ~/.bash_profile
加入export PATH=/usr/local/mysql/bin:$PATH并source使其生效
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'welcome',
'BlogUser'
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # mysql.connector.django
'NAME': 'test',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'localhost',
'PORT': '3306',
}
}