1. 环境搭建
准备环境:
- ubuntu
- python 3.5+
- pycharm 2017.1.5 + 专业版
- Mysql
每创建一个新的django项目,都要新建一个python隔离环境
1.1 隔离环境
- 查看隔离环境
pyvip@Vip:~$ workon
envpy2
py3env
toolweb
- 创建隔离环境
pyvip@Vip:~$ mkvirtualenv -p /usr/bin/python3.5 envname
- 进入隔离环境
pyvip@Vip:~$ workon envname
- 退出隔离环境
(toolweb) pyvip@Vip:~$ deactivate
- 删除隔离环境
pyvip@Vip:~$ rmvirtualenv envname
1.2 安装django
进入隔离环境,安装django第三方包
(toolweb) pyvip@Vip:~$ pip install django
2.简单操作
-
2.1创建项目
(toolweb) pyvip@Vip:~/projects/ToolsWeb$ django-admin startproject projectname
这个命令会在当前目录下创建项目文件
(toolweb) pyvip@Vip:~/projects/ToolsWeb/tools$ tree
.
├── manage.py #项目管理文件
└── tools
├── __init__.py
├── settings.py #项目设置文件
├── urls.py #路由管理文件
└── wsgi.py #wsgi接口文件
-
2.2 pycharm创建项目远程关联
-
2.3 启动服务
如果是虚拟机要做好端口映射
2.3.1 命令行启动:
(toolweb) pyvip@Vip:~/projects/ToolsWeb/tools$ python manage.py runserver 0.0.0.0:8000 #或者 0:8000
2.3.2 pycharm配置启动django服务:
2.3.3 settings.py文件设置
在调试环境中我们通常这样设置
ALLOWED_HOSTS = ['*']
如果是公网环境下,需要这样设置
ALLOWED_HOSTS = ['112.74.177.117', 'localhost', '0.0.0.0:8000', '127.0.0.1']
还有设置语音区域
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
3.第一个应用视图
什么是应用:包含了 "视图" "模型" "模版" url
的组合
一个项目
project
里面可以有多个应用app
- 创建一个应用,用命令行的方式:
(toolweb) pyvip@Vip:~/projects/ToolsWeb/tools$ python manage.py startapp appname
- 在
views.py
中创建一个函数视图
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('第一个django项目')
- 在APP目录中创建一个
urls.py
路由文件
from django.urls import path
from . import views
urlpatterns = [
path('index/', views.index),
]
- 然后在项目目录的
urls.py
中建立一个路由地址,映射到APP中的路由文件
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('tools/',include('UserTools.urls'))
]
这样一个简单的视图就建好了,在浏览器中用“http://127.0.0.1:8000/tools/index/”就能正常访问了
千万别忘记了还要在settings.py
文件中注册这个新添加的APP
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'UserTools',
]