django

web框架

Web框架(Web framework)或者叫做Web应用框架(Web application framework),是用于进行Web开发的一套软件架构。大多数的Web框架都封装了一些通用的功能,为Web的行为提供支持,开发人员只需要写入项目对应的逻辑代码即可。

python的三大主流web框架

django 
特点: 大而全,自带的功能非常非常多
缺点: 过于笨重

flask
特点: 小而精 自动的功能特别少,支持插件扩展,第三方模块很多,所有第三方模块加起来可以盖过django,也越来越像django。
缺点: 依赖第三方开发者

tornado
特点:异步非阻塞,支持高并发,牛逼到可以开发游戏服务
缺点:会的人少

web框架提供的通用功能主要包括:

A. socket部分 (数据发送、接收与传输相关);
B. 路由与视图函数的对应关系 (路由匹配)
C. 模板语法 (动态页面引入外部变量的语法)

django:
A 用的是wsgiref模块
B 用的自己的
C 用的自己的(没有jinjia2好用,但也很方便)

flask
A 用的是werkzeug(内部也是wsgiref模块)
B 用的自己的
C 用的jinjia2模块

tornado
A B C 都是自己写的

django安装与简单使用

注意事项:

# 如何让你的计算机能够正常启动django项目
1. 计算机的名称不能有中文
2. 一个pycharm窗口只开一个项目(不要打开多余的文件夹)
3. 项目里的文件也尽量不要出现中文
4. python解释器尽量使用 3.4-3.6之间的版本
  (如果你的项目报错 点击最后一个报错信息,去源码中把逗号删掉)

# django的版本问题
1.x  2.x  3.x(太新)
目前用的最多的还是1.x与2.x

安装与简单使用

命令行

  1. 安装django
# 如果超时报错,再次执行安装命令即可
pip install django==1.11.11

# 安装好后输入django-admin可看到命令介绍
  1. 创建一个名为mysite1 的django项目
django-admin startproject mysite1
  1. 进入项目目录,启动Django项目(默认127.0.0.1:8000)
cd mysite1
python manage.py runserver

#或指定ip端口
#python manage.py runserver 127.0.0.1:8888

浏览器访问 http://127.0.0.1:8000/,效果为
django

  1. 创建应用
#这里的应用也叫做app,可以理解为这个项目的各个大的功能模块,就类似于大学中的各个学院,一个学院就为一个应用。

python manage.py startapp app01
  1. templates配置
# 项目根目录下手动创建templates文件夹
# 配置文件 mysite1/mysite1/settings.py 中加入templates路径
'DIRS': [os.path.join(BASE_DIR, 'templates')],

django

  1. 应用注册

新建的应用app需要到配置文件 mysite1/mysite1/settings.py 中注册

django

pycharm

注: 社区版pycharm不支持django

  1. 安装django
    django

  2. 创建新项目
    点击file--> new project --> 选择django
    django

  3. 启动服务

命令行的方式启动python manage.py runserver

点击绿色小箭头。

  1. 创建应用

pycharm终端命令行输入 python manage.py startapp appname

  1. templates配置
    pycharm会自动创建templates目录与添加路径

  2. 应用注册与命令行的步骤一样

vscode

  1. 安装django

我没找到哪里能选择版本,就随便装了一个相近的版本
django

  1. 创建项目我直接使用命令行的方式,不知道vscode控制台还有没有其他方式

  2. 启动服务

需要先修改配置,把此段代码加到configurations中(别的教程能选择django,自动添加,我没有实现)
django

      {
         "name": "Python: Django",
         "type": "python",
         "request": "launch",
         "program": "${workspaceFolder}\\manage.py",
         "args": [
            "runserver",
            "--noreload"
         ],
         "django": true,
         "justMyCode": false,
      },

注意这里需要只打开项目根目录,上层不能有其他目录
django

选择调试模式django,点击绿色箭头即可启动服务
django

后续其他操作都与命令行一样。

项目文件介绍

django

mysite1/
├── manage.py            # 管理文件,django的入口文件
└── app01                # 应用app01文件夹
|   ├── migrations       # 文件夹,数据库迁移记录
|   |   └── __init__.py
|   ├── __init__.py
|   ├── admin.py         # django 后台管理相关
|   ├── apps.py          # 注册使用
|   ├── models.py        # 数据库相关的 模型类(orm)
|   ├── tests.py         # 测试文件
|   └── views.py         # 视图函数(视图层)
|
└── mysite1              # 项目目录
|   ├── __init__.py
|   ├── settings.py      # 项目配置
|   ├── urls.py          # 路由,URL和函数的对应关系
|   └── wsgi.py          # wsgiref模块相关,runserver命令就使用此模块做简单的web server
|
└──  templates           # 存放html页面的文件夹

django小白必会三板斧

HttpResponse    # 返回字符串类型的数据

render          # 返回html文件

redirect        # 重定向
    return redirect('https://www.baidu.com') #重定向到某个网页
	return redirect('/home/')                #重定向到本地的一个页面

简单使用:

#创建3个路由:
    /index      返回字符串"Hi,it's django~~~"
    /hello      返回页面 hello.html
    /oldindex   跳转到本地/index
	/baidu      跳转到https://www.baidu.com

django

django

django

重启django服务后,访问效果为:
django

上一篇:从0搭建腾讯云Centos8.2服务器Nginx+uwsgi+Django环境(无可视化界面),并配合个人域名将简单Django项目发布到公网上。第二部分


下一篇:django 学习(十七)—— 客户端测试