2. Django框架介绍
1. Django安装注意事项
# 如何让你的计算机能够正常的启动django项目
1.加算计的名称不能有中文
2.一个pycharm窗口只开一个项目
3.项目里所有的文件也尽量不要出现中文
4.python解释器尽量使用3.4~3.6之间的版本
(如果你的项目报错 点击最后一个报错信息 去源码中把逗号删除)
# django版本问题
1.X 2.X 3.X(直接忽略)
1.X和2.X本身差距也不大
公司之前用的1.8 过渡到了1.11版本 有一些项目用的2.0
#django安装
pips install django==1.11.11
如果已经安装了其他版本 无需自己卸载
直接重新装 会自动卸载安装新的
验证是否安装成功的方式1
终端输入django-admin看看有没有反应
2. django基本操作
# 命令行操作
# 1.创建django项目
"""
你可以先切换到对应的D盘 然后在创建
"""
django-admin startproject 项目名
# 2. 启动django项目
"""
一定要先切换到项目目录下
cd /
"""
python manage.py runserver
# http://127.0.0.1:8000/
# 3.创建应用
python manage.py startapp app01
应用名应该做到见名知意
# pycharm操作
# 1 new project 选择左侧第二个django即可
# 2 启动
1.还是用命令启动
2.点击绿色小箭头即可
# 3 创建应用
1.pycharm提供的终端直接输入完整命令
2.pycharm tools run manage.py task提示
pycharm中改django端口
01:
3. 主要文件介绍
--mysite项目文件夹
--mysite文件夹
--settings.py 配置文件
--urls.py 路由与视图函数对应关系(路由层)
--wsgi.py wsgiref模块
--manage.py django的入口文件
--db.sqlite3 django自带的sqlite3数据库(小型数据库 功能不是很多还有bug)
--app01文件夹
--admin.py django后台管理
--apps.py 注册使用
--migrations文件夹 数据库迁移记录
--models.py 数据库相关的 模型类
--tests.py 测试文件
--views.py 视图函数
4. 应用
"""
django是一款专门用来开发app的web框架
"""
******************创建的引用一定要去配置文件中注册
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config', # 全写
'app02' # 简写
]
# 创建出来的应用第一步先去配置文件中注册
ps:你在用pycharm创建项目的时候 pycharm可以帮你创建一个app并且自动注册
5. 命令行与pycharm创建的区别
# 1 命令行创建不会自动有templates文件夹 需要你自己手动创建,pycharm会自动帮你创建并且还会自动在配置文件中配置对应的路径
# pycharm创建
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
},
]
# 命令行创建
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
},
]
"""
也就意味着你在用命令创建需要自己添加地址
"""
6. 基于Django实现的一个简单示例
(1)url.py
from django.contrib import admin
from django.urls import path,re_path # 导入re_path
#导入views模块
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls), # 该行代码是新建项目时django框架自动生成的,暂且忽略,暂时注释掉也可以,随着一步步深入介绍,都会讲到它的专门用法
# 新增地址http://127.0.0.1:8001/index/与index函数的映射关系
re_path(r'^index/$',views.index), # r'^index/$'会匹配url地址的路径部分
]
(2)视图
from django.shortcuts import render
# 必须定义一个request形参,request相当于我们自定义框架时的environ参数
def index(request):
import datetime
now=datetime.datetime.now()
ctime=now.strftime("%Y-%m-%d %X")
return render(request,"index.html",{"ctime":ctime}) # render会读取templates目录下的index.html文件的内容并且用字典中的ctime的值替换模版中的{{ ctime }}
(3)模版
在templates目录下新建文件index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h4>当前时间:{{ ctime }}</h4>
</body>
</html>
测试:
python manage.py runserver 8001 # 在浏览器输入:http://127.0.0.1:8001/index/ 会看到当前时间。
7. MVC模式和MTV模式
MVC,全名是Model View Controller,是Web开发领域中的一种著名的软件架构模式,所谓MVC就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起
# M:Model模型负责业务对象与数据库的映射(ORM),用于数据库打交道
# V:view视图负责与用户的交互(html页面)
# C:Controller控制器接受用户的输入调用模型和视图完成用户的请求
MVC的软件架构模式具有有耦合性低、重用性高、生命周期成本低等优点,主要用于web框架,常用的开发语言,有java,php,node.js等等。 Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV模式,
# Model(模型):负责业务对象与数据库的对象(ORM)
# Template(模版):负责如何把页面展示给用户
# View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,
view再调用相应的Model和Template
8. django请求生命周期流程图
综上,我们使用Django框架就是为了开发application,而application的工作过程本质就是根据不同的请求返回不同的数据,Django框架将这个工作过程细分为如下四层去实现
1、路由层(根据不同的地址执行不同的视图函数,详见urls.py)
2、视图层(定义处理业务逻辑的视图函数,详见views.py)
3、模型层 (跟数据库打交道的,详解models.py)
4、模板层(待返回给浏览器的html文件,详见templates)
见下图:
9. django小白必会三板斧
"""
HttpResponse
返回字符串类型的数据
render
返回html文件的
redirect
重定向
"""