環境:爲了使服務器可以開發多個應用程序,環境版本互不影響,利用virtualenv來建立獨立隔離的環境進行開發使用。python
#安裝virtualenv:mysql
[root@vps django]# pip3 install virtualenvsql
#建立一個虛擬環境 數據庫
[root@vps django]# virtualenv django_envdjango
Using base prefix '/usr/local'服務器
New python executable in /django/django_env/bin/python3.5app
Also creating executable in /django/django_env/bin/pythonide
Installing setuptools, pip, wheel...done.ui
#使用虛擬環境spa
[root@vps django]# source django_env/bin/activate
#在虛擬環境下安裝django
(django_env) [root@vps django]# pip3 install django==1.10
術語:
project的做用是提供配置文件,比方說哪裏定義數據庫鏈接信息, 安裝的app列表,TEMPLATE_DIRS ,等等。
一個app是一套Django功能的集合,一般包括模型和視圖,按Python的包結構的方式存在。
例如,Django自己內建有一些app,例如註釋系統和自動管理界面。 app的一個關鍵點是它們是很容易移植到其餘project和被多個project複用。
#1.建立一個項目project
(django_env) [root@vps django]# django-admin startproject my_project
建立一個項目之後,會生成幾個文件
#2.建立應用app,下面兩種方法均可以
(django_env) [root@vps my_project]# django-admin startapp first_app
(django_env) [root@vps my_project]# python3 manage.py startapp second_app
#3.鏈接數據庫,Python3中使用pymsql鏈接MySQLdb,不然會遇到下面的坑
解決方法:
1).安裝pymysql輪子:
(django_env) [root@vps my_project]# pip3 install pymysql
2). 執行成功後,打開__init__.py,添加以下:
3).修改settings.py :
4).同步數據庫:
這種方法能夠建立表,當你在models.py中新增了類時,運行它就能夠自動在數據庫中建立表了,不用手動建立。
(django_env) [root@vps my_project]#python3 manage.py migrate
數據庫同步成功後,鏈接的庫中會生成一些表。
#4.使用自帶的開發服務器,只在開發時調試使用,不建議在線上使用
(django_env) [root@vps my_project]# python3 manage.py runserver 0.0.0.0:8000
Performing system checks...
System check identified no issues (0 silenced).
January 04, 2017 - 02:24:16
Django version 1.10, using settings 'my_project.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[04/Jan/2017 02:25:15] "GET / HTTP/1.1" 200 1767
Not Found: /favicon.ico
#建立後臺登陸帳號密碼
(django_env) [root@vps my_project]# python3 manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: admin@admin.com
Password:
Password (again):
廬山真面貌