Loading

初试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) - 负责转发请求,对请求进行处理
    image
    image

MTV模型

django的MTV模型本质和MVC模型是一样的,也是为了各组件保持松耦合关系,只是定义上有些许不同

  • M表示模型(Model):编写层序应有的功能,负责业务对象与数据库的映射(ORM)
  • T表示模板(Template):负责如何把html展示给用户
  • V表示视图(View):负责业务逻辑,并在适当的时候调用model和Template

除了以上三层之外,MTV还需要一个url分发器,他的作用是将一个个url的页面请求发送给不同的view处理,view再调用相应的model和template,MTV的响应如下:

image
image

解析:
用户通过游览器向我们的服务器发送一个请求(request),这个请求会去访问视图函数:
a.如果不涉及到数据的调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户
b.如果涉及到数据的调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。
视图函数把返回的数据填充到模板中的空格中,最后返回网页给用户

下载与安装

下载Django超链接

  • 计算机名称不能有中文
  • 项目名和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
    

下载
image

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

项目的创建于启动

命令行模式

# 创建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

image

pycharm创建

image
image
image

两者创建django的区别

  • pycharm自动生成templates文件夹

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

    • settings.py没有拼接路径
      image
  • 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
	重定向

posted @ 2022-03-19 12:09  木子乐乐  阅读(18)  评论(0)    收藏  举报