环境:为了使服务器能够开发多个应用程序,环境版本互不影响,利用virtualenv来创建独立隔离的环境进行开发使用。
#安装virtualenv:
[root@vps django]# pip3 install virtualenv
#创建一个虚拟环境
[root@vps django]# virtualenv django_env
Using base prefix '/usr/local'
New python executable in /django/django_env/bin/python3.5
Also creating executable in /django/django_env/bin/python
Installing setuptools, pip, wheel...done.
#使用虚拟环境
[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):
庐山真面貌