Mapz's Blog

可以递归的函数指针

Django项目的搭建

原文地址 Mapz的Blog

前言

Django作为成熟的 Python Web框架,有很多第三方模块,比如djangoPackages就是一个发布django模块的站点。

Django作为快速开发,还是比较适合的。

安装Django

官网文档

我们用Python3.5来安装Django

老路子,Python工程,先创建虚拟环境,避免包环境污染

1
virtualenv django_env

Django本体安装

我这里默认环境是3.5python,如果你不是默认3.5的话,需要指定 virtualenv 参数,这里就不赘述了

进入虚拟环境

1
source ./django_env/bin/activate

使用pip安装django,我们就安装最新的版本吧

1
pip install Django==1.11.1

安装后校验是否成功

进入python控制台

1
python

校验安装版本

1
2
3
>>> import django
>>> django.get_version()
'1.11.1'

或者简单的在shell中检查

1
python -m django --version

数据库安装

我们这里就用mysql来作数据库,安装过程略去


项目搭建

创建项目

在合适的目录下

1
django-admin startproject proj_mgr_kits

django会创建一个目录树

1
2
3
4
5
6
7
8
9
10
11
12
13
proj_mgr_kits/   #可以随意改名,这个目录名不影响django的逻辑
manage.py #django的管理命令行工具
proj_mgr_kits/ #这是一个python包目录了
__init__.py
settings.py #配置文件
urls.py
wsgi.py
```

### 启动测试服

``` bash
python manage.py runserver

浏览器打开 http://127.0.0.1:8000/

出现

1
2
3
4
It worked!
Congratulations on your first Django-powered page.
Next, start your first app by running python manage.py startapp [app_label].
You're seeing this message because you have DEBUG = True in your Django settings file and you haven't configured any URLs. Get to work!

启动成功

runserver 后面接上IP端口号,可以指定启动的IP和端口

测试服启动期间,修改了python代码后,会自动加载

如果有不能加载的,请手动restart

Django的App和Project概念

Django中 的一个Project,简单说就是一个网站

一个网站中可以有很多的App , 也就是功能模块

一个App可以在多个项目中使用

创建我们的APP

我们创建一个名为 qk_deploy 的APP

1
python manage.py startapp qk_deploy

将会在目录中创建 qk_deploy 目录

1
2
3
4
5
6
7
8
9
qk_deploy
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│   └── __init__.py
├── models.py
├── tests.py
└── views.py

创建我们的第一个页面

这里包含我们写Django的几个基本步骤

  1. 创建页面
  2. 配置路由

创建页面

修改 view.py

1
2
3
4
5
from django.http import HttpResponse


def index(request):
return HttpResponse("Hello, world.")

配置路由

修改 app下的 urls.py(没有就自己创建一个)

1
2
3
4
5
6
7
from django.conf.urls import url

from . import views

urlpatterns = [
url(r'^$', views.index, name='index'),
]

修改 工程下的 urls.py

1
2
3
4
5
6
7
from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
url(r'^qk_deploy/', include('qk_deploy.urls')),
url(r'^admin/', admin.site.urls),
]

访问页面

浏览器打开 http://127.0.0.1:8000/qk_deploy/

出现

Hello, world.

一个页面就创建成果了,是否很简单哇