文章目录
一、Django框架介绍
(官方网址)
软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品,框架的功能类似于基础设施,提供并实现最为基础的软件架构和体系,通常情况下我们依据框架来实现更为复杂的业务程序开发。简而言之,框架就是程序的骨架。
Python中常见的框架:
- 大包大揽 —— Django 被官方称之为完美主义者的Web框架
- 力求精简 —— web.py 和 Tornado
- 新生代微框架 —— Flask 和 Bottle
Django 是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计。由经验丰富的开发人员构建,它负责Web开发的许多麻烦,因此开发人员可以专注于编写应用程序,而无需重新创建*。并且它还是免费的、开源的,被官方称之为完美主义者的Web框架。
Django框架的特点:
- 快得多,Django旨在帮助开发人员尽快将应用程序从概念到完成。
- 令人放心的安全,Django非常重视安全性,并帮助开发人员避免许多常见的安全错误。
- 超出可扩展性,Web上一些最繁忙的站点利用了Django快速灵活扩展的能力。
Python和Django的搭配版本:
Django 版本 | Python版本 |
---|---|
1.8 | 2.7,3.2(直到2016年底),3.3, 3.4, 3.5 |
1.9,1.10 | 2.7, 3.4, 3.5 |
1.11 | 2.7 , 3.4 , 3.5 , 3.6 |
2.0 | 3.5+ |
二、Django项目创建
新建项目
目录说明:
- 外层目录:
manage.py :一个命令行工具,可以使你用多种方式对 Django 项目进行交互 - 内层的目录:项目的真正的Python包
- init.py :一个空文件,它告诉Python这个目录应该被看做一个Python包
- swgi.py :Django3中出现,实现客户端向服务端发送推送的网关
- settings.py :项目的配置
- urls.py :项目的URL声明
- wsgi.py :项目与 WSGI 兼容的Web服务器入口
在Terminal中运行’>python manage.py runserver’
然后去浏览器访问 http://127.0.0.1:8000/ 出现以下界面既创建成功。如果端口被占用,可以指定运行服务的端口 ‘>python manage.py runserver 9999’ 。(ctrl+c即可终止)
直接运行 ‘>python manage.py’ 可以看到相关操作罗列
三、启用后台 Admin 站点管理
站点分为 “内容发布(后台管理)” 和 “公共访问(前台管理)” 两部分,“内容发布” 的部分负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味、缺乏创造力的工作。因此, Django 会根据定义的模型类完全自动地生成管理模块。Django 框架中有一个非常强大的应用功能: 自动管理界面。 常被Web平台管理者使用,去管理整个Web平台。默认情况下,在 settings.py 配置文件中INSTALLED_APPS 包含以下应用程序,为了后续的开发,默认这些应用程序都是包含在里面的。
应用程序 | 功能 |
---|---|
django.contrib.admin | 管理网站 |
django.contrib.auth | 认证管理 |
django.contrib.contenttypes | 内容类型的框架 |
django.contrib.sessions | 会话框架 |
django.contrib.messages | 消息框架 |
django.contrib.staticfiles | 管理静态文件的框架 |
(0). 数据库迁移
使用这些 Django 自带的应用程序,需要我们在数据库中创建一些数据表对应,然后才能使用它们。
python manage.py makemigrations
# 生成迁移文件,数据库表并真正未存到数据库中,仅仅是中间文件
python manage.py migrate
# 真正要写进数据库要用此命令,存到的是sqlite数据库中
数据库设置
第一次使用时是没有数据库的,需要按以下步骤创建,数据库命名要和设置文件中匹配。
将系统生成的一些后台管理文件写入到数据库中
双击数据库就可以查看数据库中的内容
(1). 创建管理员用户
# 按提示输入用户名、邮箱、密码
python manage.py createsuperuser
启动服务器,通过 “127.0.0.1:8000/admin” 访问,输入上面创建的用户名、密码完成登录
进入管理站点,默认可以对 groups、users 进行管理
(2). 管理界面本地化
编辑 settings.py 文件,设置编码(中文)、时区
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
不需要重新运行服务,直接访问页面刷新一下就可以了
四、应用的创建和使用
(1) 创建第一个应用程序
Django 自带一个实用程序,可以自动生成应用程序的基本目录结构,因此开发人员可以专注于编写代码而不是创建目录。
- 在一个项目中可以创建一到多个应用,每个应用进行一种业务处理
- 创建应用的命令:
python manage.py startapp bookApp
应用的目录结构如下图 :
magritions 存放的是生成的迁移脚本。
(2) 编写第一个视图函数
视图:对用户的请求(request)进行业务逻辑操作,最终返回给用户一个响应(response)。
打开文件 bookApp/views.py 并放入以下Python代码:
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def index(request):
return HttpResponse("图书管理系统")
(3) 路由规则
要在 bookApp 目录中新建一个URLconf,创建一个名为 urls.py 。如下所示:
# bookApp/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
# 当用户访问bookApp应用的主页时, 执行视图函数index,反向根据名称获取url地址;
url(r'^$', views.index, name='index'),
]
根据配置文件 djangoProject/settings 可知路由查找的主文件是 djangoProject/urls.py , 因此在该文件添加一条 url 规则:
# djangoProject/urls.py
from django.conf.urls import url
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
# 当用户访问的url地址以book开头, 请访问bookApp.urls这个url配置文件进行匹配并执行对应的视图函数.
url(r'^book/', include('bookApp.urls')),
# 当用户请求路径为/book/时,访问bookApp/urls.py子路由配置文件
# path('book/', include('bookApp.urls')) # 也可以使用这种写法功能等同于url(r'^book/', include('bookApp.urls')),
]
- include()函数允许引用其他 URLconfs。
(4) 效果展示
Django中修改文件不需要重新启动会自动加载,新建文件需要重新启动。
- 启动服务器
> python manage.py runserver
- 访问 url 地址: http:// 127.0.0.1:8000/book/ 如果看到主页内容 图书管理系统 即成功。
修改返回值形式
效果:
url() 函数介绍
Django url() 可以接收四个参数,分别是两个必选参数: regex 、 view 和两个可选参数:kwargs 、 name 。
- regex : 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。
- view : 用于执行与正则表达式匹配的 URL 请求。
- kwargs : 视图使用的字典类型的参数。
- name : 用来反向获取 URL。