day52 django的下载与安装

news/2024/6/2 6:02:07 标签: django, python, 后端

课程的大致安排

大概两周的时间都是围绕着Django框架的学习,包括后续要学习的drf、Redis、celery、es等技术栈都是围绕Django展开的,因此、要求所有的同学必须认证学习了

市场中所有使用Python开发的web项目,Django框架占有率达到90%以上

今日内容概要6

  • web应用程序

  • 手写web框架(帮助我们理解别人写好的成熟框架、重点在于思路的理解、代码无需掌握)

  • Django框架的学习

  • Python中得主流框架

  • 框架的下载、安装、版本、怎么启动、怎么使用等

  • 三板斧问题

今日内容详细

web应用程序
# Django框架是一款专门用来开发web应用的框架
什么是web?
    Web应用程序是一种可以通过Web访问的应用程序,用户只需要有浏览器即可,不需要再安装其他软件
案例:
    淘宝网、京东网、博客园、等都是基于web应用的程序
​
    应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助IE等浏览器来运行。WEB应用程序一般是B/S模式
    
#  Web应用程序的优点
1. 你所需要的只是一个适用的浏览器
2. 节省硬盘空间
3. 它们不需要更新,因为所有新的特性都在服务器上执行,从而自动传达到用户端;
4. 过跨平台使用的例如Windows,Mac,Linux等等
​
# Web应用程序的缺点
"""严重依赖服务端的正常运行、服务端一旦出问题、客户端里面受到影响"""
​
# 什么是web框架:
别人写好的框架(就是一堆目录和文件),我们只需要在固定的位置写代码即可
手写web框架(帮助我们理解别人写好的成熟框架、重点在于思路的理解、代码无需掌握)
web应用程序是B/S架构的,所以、我们需要自己写一个服务端、然后让浏览器作为我们的客户端即可
怎么样去写一个服务端? socket编程
​
HTTP协议的特性:
1. 四大特性
    # 基于请求响应
    # 基于TCP协议之上的应用层协议
    # 无状态
    # 短链接
    
2. 请求数据格式
    请求首行(请求方式、协议、版本号、路径)
    请求头
    \r\n
    请求体(get请求方式是没有请求体的、POST请求方式才有请求体)
3. 响应数据格式
    响应首行()
    响应头
    \r\n
    响应体()
4. 响应状态码
    1xx
    2xx
    3xx
    4xx
    5xx
    
## 图解HTTP协议(漫画版本的)  图解TCP协议
# 请求方式
GET POST
​
​
"""问题来了,如何做到在网址栏中输入什么后缀就返回什么后缀?"""
解决的思路:
    1. 服务端要知道你网址栏里输入的是什么后缀
    2. 服务端做判断,然后做对应的返回
# 服务端如何知道客户端输的的是什么后缀
​
# 当前的服务端存在的问题?
1. socket部分需要我们自己每次都要写
2. 我们需要自己每次处理HTTP格式的数据,自己转码、自己切分、自己取值等
3. 没有解决高并发问题
​
# 怎么样优化以上存在的问题呢?
wsgiref模块的使用
wsgiref服务器---------->uwsgi服务器(uwsgi)-------->Nginx服务器+uwsgi服务器
​
wsgiref模块是一个内置的模块,直接可以拿来使用,无需安装
它帮助我们封装了socket部分,另外,它也解决了部分的高并发问题,但是,它能够解决的并发量并不高
他们也会帮我们把HTTP格式的数据做封装处理,也就是说不需要我们在自己处理
​
views.py # 主要用来写业务逻辑的,它也称为是视图文件
urls.py  # 主要用来写后缀和视图函数的对应关系,它也称为是路由文件
template # 存储项目中用到的模板文件,html文件,模板文本,提供了一些模板语法.
​
"""每一个框架都应用有一个入口文件,Django也不例外"""
Django框架的学习
Python中得主流框架:
    Django框架:最主流的,市场占用率90%以上,笨重的框架,里面自带了很重的模块,不适用于小项目,类似于航空母舰
    falsk框架:轻量级的,小而美,自带的功能比较少,需要安装很多的第三方模块,当你安装的模块足够多的时候,也差不多跟Django差不多了
    tornado框架:异步非阻塞、高性能、学这个框架成本有点高、解决的并发量挺高的,它一般用在特殊的场景
    sanic框架:
    fastapi框架:它主要用来写一些接口,不出来页面,它只负责写业务逻辑
    
## 主要就来学习Django的使用
如何使用Django:
1. 需要先安装: pip install django
2. 版本的问题
    django1.x: 以前的老项目在使用,它跟2.x的版本区别不是特别大
    django2.x:主流的项目使用的都是2.x的版本,有一点区别的跟1.x
    django3.x: 新版本了,现在有不少的项目确实在选择3.x的版本
 # 比如:drf框架要求django的版本必须是2以上,不支持1的版本
讲1.x和2.x的版本注意讲1.x,一块再去看2的版本
​
3. django的版本要和你的Python的版本要匹配,django3用个2.7版本,不行
django2----->python3.6以上
django1----->python3.6
​
4. 如何创建django项目
    # 先切换路径到你想存储的位置
    命令行创建:
        django-admin startproject 项目名称
        django-admin startproject myfirst
    pycharm创建项目
        File
            New project
                django
                    ...
5. 注意事项:
    1. 项目名称必须是英文,不能是中文
    2. 一个pycharm窗口只打开一个django项目
6. 如何启动项目
     # 先把路径切到跟manage.py同级目录下面
     命令行启动
        python manage.py migrate---------如果出现红字报错(例如内部有什么18个error这种,先用这条代码进行重       构)
        python manage.py runserver
        python manage.py runserver 8001 # 用于改变端口号
'''Next, start your first app by running python manage.py startapp [app_label].'''
​
7. 创建应用
     python manage.py startapp 应用名
     python manage.py startapp app01
        
     # 创建完应用之后,还要做一件非常重要的事情,就是注册应用, 如果没有注册,创建出来也没用
    **************************************************************************
            INSTALLED_APPS = [
                'django.contrib.admin',
                'django.contrib.auth',
                'django.contrib.contenttypes',
                'django.contrib.sessions',
                'django.contrib.messages',
                'django.contrib.staticfiles',
            ]
    
    **************************************************************************

应用

Django框架就类似于是一所大学,一所大学也要有二级学院
应用就类似于是二级学院,一个Django框架至少要有一个应用
​
taobao
    user
    order
    address
    
"""应用名要做到见名知意,符合变量的命名规则即可,但是,教学使用app01 02 03..."""
主要文件的介绍
mysecond            # 项目名称
    app01           # 应用名称
        migrations  # 它是迁移数据的记录
        __init__.py
        admin.py    # django自带的后台管理系统
        apps.py     # 暂且忽略,写一些注册的东西
        models.py   # 模型层,跟数据库打交道的,以后创建表就在这里写
        tests.py    # 测试脚本
        views.py    # 视图文件,主要用来写核心的业务逻辑的
    
    mysecond
        __init__.py
        settings.py # Django的全局配置文件
        urls.py     # 路由文件,写地址的后缀和视图函数的对应关系
        wsgi.py     # wsgiref服务器
    templates       # 存储HTML文件的
    db.sqlite3      # Django自带的小型数据库
    manage.py       # Django的启动文件,入口文件
   

作业

1. 整理今日内容到博客
2. 熟练练习如何创建项目、应用等

http://www.niftyadmin.cn/n/5162403.html

相关文章

flutter实现视频播放

使用到的库是lecle_yoyo_player 详细请查看文档 main.dart代码如下: import package:flutter/material.dart; import package:lecle_yoyo_player/lecle_yoyo_player.dart;void main() > runApp(const MyApp());class MyApp extends StatefulWidget {const MyA…

【机器学习4】降维

常见的降维方法有主成分分析、 线性判别分析、 等距映射、 局部线性嵌入、 拉普拉斯特征映射、 局部保留投影等。 1 PCA最大方差角度理解 PCA无监督学习算法。 PCA的目标, 即最大化投影方差, 也就是让数据在主轴上投影的方差最大。 在黄线所处的轴上&…

多变量线性回归练习

读取数据特征归一化 mean是均值 将特征大小控制在 -1~1之间 房屋的面积对价格的影响 卧室数量对价格的影响

Java修仙传之神奇的ES2(巧妙的查询及处理)

SDL语句查询 查询的基本语法 GET /indexName/_search {"query": {"查询类型": {"查询条件": "条件值"}} } 根据文档id查询 #查询文档 GET hotel/_doc/36934 查询所有 会弹出该索引库下所有文档// 查询所有 GET /indexName/_searc…

第七讲:利用类事件改变对象的属性(上)

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。 类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

【开源】基于Vue和SpringBoot的电子元器件管理系统

项目编号: S 002 ,文末获取源码。 \color{red}{项目编号:S002,文末获取源码。} 项目编号:S002,文末获取源码。 目录 一、摘要1.1 项目简介1.2 项目录屏 二、研究内容三、界面展示3.1 登录&注册&主页…

【Linux系统编程十六】:(基础IO3)--用户级缓冲区

【Linux系统编程十六】:基础IO3--用户级缓冲区 一.用户级缓冲区二.缓冲区刷新策略1.验证: 三.缓冲区意义 一.用户级缓冲区 我们首先理解上面的代码,分别使用printf和fprintf,fwrite往1号文件描述符里输出,也就是往显示…

Go 语言向函数传递数组

Go 语言向函数传递数组 在 Go 语言中,数组是值类型,因此将数组传递给函数时,将复制整个数组。如果数组非常大,这可能会导致性能问题。为了避免复制整个数组,可以通过传递切片(Slice)来传递数组…