初试django框架(一)
目录
主流web框架介绍
# django框架
大而全,自带的功能组件非常多,类似于航空母舰
# flask框架
小而精,自身的功能组件非常少,类似于游骑兵
但是第三方模块非常多,如果把第三方模块都叠加在一起,完全可以刚过django
缺点是受第三方模块的限制
ps:三行就可以启动一个flask服务器
# tornado框架
异步非阻塞,速度非常快 快到可以开发游戏
ps:sanic、fastapi...
# 框架分块和区别
A:socket部分
B:路由与视图匹配
C:模板语法
django
A:用的是wsgiref模块
B:自己写的
C:自己写的
flask
A:用的是wsgiref模块封装之后的werkzeug
B:自己写的
C:用的是jinjia模块
django
ABC:都是自己写的
MVC与MTV模型
MVC模型
MVC模型(model-view-controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型、视图和控制器。
- 模型(M) - 编写程序应有的功能,负责业务对象和数据库的映射(ORM)
- 视图(V) - 图形界面,负责与用户的交互(页面)
- 控制器(C) - 负责转发请求,对请求进行处理


MTV模型
django的MTV模型本质和MVC模型是一样的,也是为了各组件保持松耦合关系,只是定义上有些许不同
- M表示模型(Model):编写层序应有的功能,负责业务对象与数据库的映射(ORM)
- T表示模板(Template):负责如何把html展示给用户
- V表示视图(View):负责业务逻辑,并在适当的时候调用model和Template
除了以上三层之外,MTV还需要一个url分发器,他的作用是将一个个url的页面请求发送给不同的view处理,view再调用相应的model和template,MTV的响应如下:


解析:
用户通过游览器向我们的服务器发送一个请求(request),这个请求会去访问视图函数:
a.如果不涉及到数据的调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户
b.如果涉及到数据的调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。
视图函数把返回的数据填充到模板中的空格中,最后返回网页给用户
下载与安装
- 计算机名称不能有中文
- 项目名和py文件最好不要使用中文
- django版本兼容性问题:主要是1.X,2.X,3.X
django 1.11版本兼容python2.7,3.4,3.5,3.6,3.7(added in 1.11.17) django 2.0版本兼容python3.4,3.5,3.6,3.7 django 2.1、2.2版本兼容python3.5、3.6、3.7 django 3.0版本兼容python3.6、3.7、3.8
下载

- pip3 install django==[版本号]
- pycharm下载
- 注意下载带有LTS(长期支持的版本)
- 测试(django-admin)

项目的创建于启动
命令行模式
# 创建django项目
django-admin startproject 项目名
# 启动项目名
首先先切换到manage.py入口文件所在的目录: cd Django_items/mysite1
'''启动的三种方式'''
python manage。py runserver
python manage.py runserver ip:port
python manage.py runserver port
# IP本机,端口自定义,不写django默认端口是8000

pycharm创建



两者创建django的区别
-
pycharm自动生成templates文件夹
- settings。py文件中自动拼接路径

- settings。py文件中自动拼接路径
-
命令行创建:没有templates文件夹
- settings.py没有拼接路径

- settings.py没有拼接路径
-
ps: django2/3.X版本拼接模板文件路径用的是'DIRS': [BASE_DIR / 'templates'],如果路径不能用/拼接可以修改成[os.path.join(BASE_DIR, 'templates')];如果使用cmd创建需要添加模板文件的路径,切注意django的版本
创建应用(APP)
一个项目中至少包含一个应用
命令行创建
python36 manage.py startapp 应用名
pycharm创建
首先找到命令位置Tools => run manage.py task
manage.py@djangoProject2 > startapp app03
配置settings.py文件
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
...
]
主要文件介绍
mysite1 # 项目名
app01 # 应用名
migrations # 迁移数据库的时候,会把迁移记录保存到这里来
__init__.py
admin.py # django自带的后台管理系统
apps.py # 忽略
models.py # 模型层,以后跟数据库相关的都在这个里面
tests.py # 测试脚本
views.py # view层,主要用来写逻辑的
mysite1
__init__.py
settings.py # 整个django项目的全局配置文件
urls.py # 路由层,写的是路径与函数的对应关系
wsgi.py # wsgiref服务器, WSGI协议,uwsgi服务器
templates # 写html页面的地方
db.sqlite3 # django自带的小型数据库, mysql,oracle
manage.py # 启动文件,入口文件
三板斧
from django.shortcuts import render,HttpResponse,redirect
# 通过urls.py
1.HttpResponse
返回字符串
2.render
返回html页面,还可以使用模板语法
3.redirect
重定向

浙公网安备 33010602011771号