开始之前检查自己的开发环境,我使用的环境如下(环境我们没有必要一样,只要是主要的环境一样就可以):
- 系统:Mac Os 10.13
- Python使用版本:3.6.3 (你使用Python3或者3以上的版本都是可以的)
- Django版本: 1.11.6
- Git环境:2.15.0
- 编辑器:PyCharm(尽量使用最新的,如果经济有富余支持正版)
- virtualenv版本:15.1.0
1.Git环境创建(方便你在开发中对代码进行实时管理操作)推荐使用:
怎么操作自行Google解决,动手才是真正的开始
2. 项目创建
使用命令创建项目之前确保你的环境中已经安装好了Django,如果没有安装好使用命令pip install Django==1.11.6
安装即可
$ django-admin.py startproject blog
执行安装好了之后进入到项目的目录下:
$ cd blog
$ tree (这是很好用的打印目录结构的工具;Mac安装直接使用 brew install tree, Ubuntu 安装使用 sudo apt-get install tree)
.
├── blog
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
1 directory, 5 files
可以清楚的看到项目目录下有一个目录和五个对应的项目文件。
如果你之前是PHP程序员,使用过Laravel或者Yii框架创建项目跟目前使用Djando创建项目也许会存在的较大的不同之处。就好比laravel框架我们需要提供前后台以及接口的服务器,在服务对应的目录下开发相对于的模块即可,但Djando中每一个模块都需要单独去创建一个app,需要将每一个模块对应着不同的app目录。就好像是我一个新闻模块,邮件模块,用户模块都需要单独在不同的app中以便复用;如果你对这些概念有些模糊的话,跟着项目走你会慢慢清楚明白
我们现在在blog中去创建一个对应的article app 你可以理解成是创建一个文章模块
$ cd blog
$ py manage.py startapp article (如果你使用的linux系统,这里可能需要给manage.py文件一个 775权限[chmod 775 manage.py])
注:我上面使用的py 命令是我自己设置的快捷键,大家可以根据日常使用习惯在 ~/.zshrc文件设置
命令执行完之后让我们再看看目前的目录结构
$ tree
.
├── article
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── blog
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ └── settings.cpython-36.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
4 directories, 14 files
很明显,较之前来看多出了3个目录和9个文件;至于这些文件都是干嘛用的,如果你接触过开发光看命名应该多少能看出些道道了。
用编辑器打开项目,找到如图所示的文件添加对应的代码:
3.跑项目
项目基本准备的差不多了,我们跑下试试
执行命令
$ py manage.py runserver
Performing system checks...
下面的这串提示不用太在意
---提示开头----
System check identified no issues (0 silenced).
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
---提示结尾----
November 01, 2017 - 03:34:58
Django version 1.11.6, using settings 'blog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
运行上面命令出现的提示我们使用一条命令即可搞定:
$ py manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying sessions.0001_initial... OK
再次执行运行命令
$ py manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
November 01, 2017 - 03:42:28
Django version 1.11.6, using settings 'blog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
开发浏览器浏览器看看(http://127.0.0.1:8000/):
Success !! 迈出了第一步你离成功就不远了