Django 入门
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模型,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:
- M 代表模型(Model):负责业务对象和数据库的关系映射(ORM)。
- T 代表模板 (Template):负责如何把页面展示给用户(html)。
- V 代表视图(View):负责业务逻辑,并在适当时候调用Model和Template
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template
1、安装 Django
pip3 install django
测试 Django 安装
Python 3.5.0 (default, Sep 23 2015, 04:41:38) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.72)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import django >>> django.VERSION (1, 10, 3, 'final', 0) >>>
2、django 的常用命令
# 创建 django 工程项目 django-admin.py startproject projectname # projectname 为自定义的项目名称 # 创建 django 的 app python3.5 manage.py startapp appname # appname 为自定义的 app 名称 django-admin.py startapp appname # 同步数据库 python3.5 manage.py syncdb python3.5 manage.py makemigration python3.5 manage.py migrate # 启动调试模式 python3.5 manage.py runserver [ip:port] # ip:port 默认为 127.0.0.1:8000,也可以自定义 # 清空数据库 python3.5 manage.py flush # 创建 django admin 的超级管理员 python3.5 manage.py createsuperuser # 修改管理员密码 python3.5 manage.py changepassword username # 导入导出数据库 python3.5 manage.py dumpdata appname > appname.json # 导出 python3.5 manage.py loaddata appname.json # 导入 # 进入数据 python3.5 manage.py dbshell # 查看更多命令 python3.5 manage.py help
开始 django 的 Hello World
1、创建 project 和 app
创建一个project 为 Day15,并创建一个 app 为 app01, project 是一个大的工程,里面包含很多的功能,根据功能可以使用 app 来进行区分。
例如运维平台是一个 project, 下面可能包含 CMDB,Monitor,等等
# 创建项目 django-admin.py startproject Day15 # 进入 Day15 目录,创建 app python3.5 manage.py startapp app01
目录结构:
Day15 # 项目目录 ├── app01 # app 目录 │ ├── admin.py # django 自带的管理后台,可以使用少量的代码完成强大的后台管理 │ ├── apps.py │ ├── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── models.py # 与数据库相关,ORM 配置 │ ├── tests.py │ └── views.py # 处理用户请求,通过 URLconf 调用函数,处理用户的请求,通过 template 渲染之后返回给客户端 ├── Day15 │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-35.pyc │ │ └── settings.cpython-35.pyc │ ├── settings.py # 项目的配置目录 │ ├── urls.py # 路由系统 URLconf 配置文件,通过一定的匹配关联到 views.py 中的函数 │ └── wsgi.py # 通过 wsgi 调用 django 的配置文件 ├── manage.py # 命令行工具,允许以多种方式与 django 项目进行交互 ├── statics # 静态文件目录,手动创建,需要在 settings 中指定 └── templates # 模板文件目录,手动创建,需要在 settings 中指定
2、生成数据库并创建超级管理员
# 同步数据库 python3.5 manage.py makemigrations python3.5 manage.py migrate # 创建超级管理员账号 python3.5 manage.py createsuperuser
默认情况下会在 project 的 manage.py 同级目录下生成一个 db.sqlite3 文件,因为 django 默认使用的是 sqlite3 数据库
3、运行 Django 项目
python3.5 manage.py runserver 127.0.0.1:8000
默认在 127.0.0.1 地址监听 8000 端口,也可通过 IP:port 的格式指定监听地址和端口
4、访问 Django admin
http://127.0.0.1:8000/admin
5、自定义简单的 Django 页面
编辑 app01 目录下的 views.py 文件
# django 在给客户端返回数据时需要通过 HttpResponse 方法进行封装 from django.shortcuts import HttpResponse # Create your views here. # HttpResponse 的参数可为为 HTTP 代码,如 <h1>Hello World!</h1> def hello(request): return HttpResponse("Hello World!")
编辑 Day15 目录下的 urls.py 文件
from django.conf.urls import url from django.contrib import admin # 导入 views from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), # url 目录 url(r'^hello/', views.hello), ]
重新启动 django 项目,访问 http://127.0.0.1:8000/hello/