目录
0.Django学习资料
1.环境安装
默认环境: Ubuntu 16.04 64位
1.1.创建虚拟环境
mkvirtualenv django_py3_1.11 -p python3
创建虚拟环境需要联网,创建完毕后,自动进入虚拟环境.
Django安装在虚拟环境中,可以隔离其他配置的影响
1.2.安装Django
pip install django==1.11.11
安装Django也需要联网.
选择1.11.11的原因是官方维护的时间长,可以维护到2020年
1.3.其他虚拟环境和pip命令
# 虚拟环境
mkvirtualenv # 创建虚拟环境
rmvirtualenv # 删除虚拟环境
workon # 进入虚拟环境、查看所有虚拟环境
deactivate # 退出虚拟环境
# pip
pip install # 安装依赖包
pip uninstall # 卸载依赖包
pip list # 查看已安装的依赖包
pip freeze # 冻结当前环境的依赖包
2.1.创建工程 (demo为工程名称)
django-admin startproject demo
2.2.工程目录说明
.
├── demo
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
- 与项目同名的目录,此处为demo。
- settings.py 是项目的整体配置文件。
- urls.py 是项目的URL配置文件。
- wsgi.py 是项目与WSGI兼容的Web服务器入口。
- manage.py 是项目管理文件,通过它管理项目。
2.3.运行开发服务器
python manage.py runserver ip:端口
或:
python manage.py runserver
可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000
3.1.创建子应用(users为子应用名)
Django的视图编写是放在子应用中的
python manage.py startapp users
3.2.子应用目录说明
├── users
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
- admin.py 文件跟网站的后台管理站点配置相关。
- apps.py 文件用于配置当前子应用的相关信息。
- migrations 目录用于存放数据库迁移历史文件。
- models.py 文件用户保存数据库模型类。
- tests.py 文件用于开发测试用例,编写单元测试。
- views.py 文件用于编写Web应用视图。
3.3.注册子应用
在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 以下为注册子应用app
'users.apps.UsersConfig',
]
4.1.创建视图
创建的users模块,在views.py中编写视图代码
from django.http import HttpResponse
def index(request):
"""
index视图
:param request: 包含了请求信息的请求对象
:return: 响应对象
"""
return HttpResponse("hello the world!")
说明:
- 视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust对象,通常名为request。
- 视图函数的返回值必须为一个响应对象,不能像Flask一样直接返回一个字符串,可以将要返回的字符串数据放到一个HTTPResponse对象中。
4.2.定义路由url
1) 在子应用中新建一个urls.py文件用于保存该应用的路由。
2) 在users/urls.py文件中定义路由信息。
from django.conf.urls import url
from . import views
# urlpatterns是被django自动识别的路由列表变量
urlpatterns = [
# url(路径, 视图)
url(r'^index/$', views.index),
]
3) 在工程总路由demo/urls.py中添加子应用的路由数据
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls), # django默认包含的
# 添加子应用路由
url(r'^users/', include('users.urls')),
]
- 使用include来将子应用users里的全部路由包含进工程路由中;
- r'^users/' 决定了users子应用的所有路由都以/users/开头