Django(一)

x33g5p2x  于2022-02-24 转载在 Go  
字(2.8k)|赞(0)|评价(0)|浏览(246)


Django下载安装,项目、应用创建都在这里👆

Django(一)

👉[Django官网](The web framework for perfectionists with deadlines | Django (djangoproject.com))
主流Web框架介绍

1.django框架
	大而全,自带的功能组件非常非常非常的多!类似于航空母舰
 
2.flask框架
	小而精,自身的功能组件非常非常非常的少!类似于游骑兵
     但是第三方模块非常之多,如果把第三方模块全部叠加起来完全可以盖过django
    有时候也会受限于第三方模块
    ps:三行代码就可以启动一个flask后端服务

3.tornado框架	
	异步非阻塞  速度非常的快 快到可以开发游戏服务器
ps:Sanic、FastAPI...

    
# 框架分块和区别
A:socket部分
B:路由与视图匹配
C:模板语法
  
django
   A:用的是wsgiref模块
   B:用自己写的
   C:用自己写的
flask
   A:用的是wsgiref模块封装之后werkzeug
   B:用自己写的
   C:用jinja2模块
tornado	
	A、B、C都是自己写的

MVC 与 MTV模型

MVC 模型

MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

MVC 以一种插件式的、松耦合的方式连接在一起。

  • 模型(M)- 编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
  • 视图(V)- 图形界面,负责与用户的交互(页面)。
  • 控制器(C)- 负责转发请求,对请求进行处理。

MTV 模型

Django 的 MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django 的 MTV 分别是指:

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

除了以上三层之外,还需要一个 URL 分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template,MTV 的响应模式如下所示:

解析:

用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数:

a.如果不涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户。
b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。
视图函数把返回的数据填充到模板中空格中,最后返回网页给用户
参考:runoob

安装与下载

👉下载 Django |Django (djangoproject.com)

  • 计算机名称不能有中文
  • 项目名和py文件名最好也不要使用中文
  • django版本兼容问题:主要有1.X、2.X、3.X

下载

  • pip3 install django==[版本号]
  • pycharm下载
  • !!!注意下载带LTS(长期支持版本)的!!!

测试

  • django-admin

项目的创建和启动

命令行模式

django-admin startproject 项目名

启动项目

命令行模式

1.创建django项目
django-admin startproject mysite1
2.启动项目名
切换到manage.py入口文件所在目录:cd Django_items\mysite1
启动的三种方式:
2.1 python manage.py runserver 
2.2 python manage.py runserver ip:port
2.3 python manage.py runserver port 
# ip本机,端口自定义,不写Django默认端口8000

pycharm创建

启动

如果没有启动按钮,那么就点击:

结果都是一样可以启动的

命令行创建和pycharm创建的区别

  • pycharm创建:自动生成templates文件夹

  • settings.py文件中自动拼接了路径

  • 命令行创建:没有templates文件夹

  • settings.py文件没有拼接路径

ps:Django2/3.X版本拼接模板文件路径用的是[BASE_DIR / 'templates'],如果路径不能用/拼接修改成[os.path.join(BASE_DIR, 'templates')];如果使用cmd创建需要添加模板文件的路径,且注意Django版本

创建应用(app)

一个项目至少含有一个应用!
命令行模式:

python manage.py startapp 应用名
E:\Django_items\djangoProject1>python manage.py startapp app01

pycharm创建

Tools => run manage.py task
或
创建项目的时候可以快捷创建一个!

startapp 应用名
manage.py@djangoProject1 > startapp app03

创建完应用要去配置文件注册

如果在创建应用的时候创建的项目,pycharm自动给注册了

INSTALLED_APPS = [
            'django.contrib.admin',
            'django.contrib.auth',
            'django.contrib.contenttypes',
            'django.contrib.sessions',
            'django.contrib.messages',
            'django.contrib.staticfiles',
            'app01',
            'app02'
    ]

主要文件介绍

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
	重定向

相关文章