Python web框架

本质

收发socket消息             --> 按照HTTP协议消息格式去解析消息

路径和要执行的函数的对应关系   --> 主要的业务逻辑

字符串替换               --> 模板(特殊符号 --> 数据)

一个完整得请求流程:

0. 启动服务端,等待客户端(用户的浏览器)来连接

1. 在浏览器地址栏输入URL,与服务端建立连接,浏览器发送请求

2. 服务端收到请求消息,解析请求消息,根据路径和函数的对应关系,找到将要执行的函数

3. 执行函数,打开HTML文件,进行字符串替换,得到一个最终要返回的HTML内容

4. 按照HTTP协议的消息格式要求,把HTML内容回复给用户浏览器(发送响应)

5. 浏览器收到响应的消息之后,按照HTML的规则渲染页面

6. 关闭连接

socket服务端功能划分:

a. 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn...

b. 根据用户访问不同的路径执行不同的函数

c. 从HTML读取出内容,并且完成字符串的替换 --> jinja2(模板语言)

Python中 Web框架的分类:

按上面三个功能划分:
  1. 框架自带a,b,c         --> Tornado

  2. 框架自带b和c,使用第三方的a  --> Django

  3. 框架自带b,使用第三方的a和c   --> Flask

按另一个维度来划分:

  1. Django   --> 大而全(你做一个网站能用到的它都有)

  2. 其他     --> Flask 轻量级

Django框架

Django框架模式

MVC:

  模型(Model)

  视图(View)

  控制器(Controller)

具有耦合性低、重用性高、生命周期成本低等优点。

Django的MTV模式

  • Model(模型):    负责业务对象与数据库的对象(ORM)
  • Template(模版):    负责如何把页面展示给用户
  • View(视图):     负责业务逻辑,并在适当的时候调用Model和Template

此外,Django还有一个 urls 分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

    图示

   

新建Django项目

Django安装

pip3 install django==1.11.11
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11

PyCharm安装的时候: 

注意不要勾选那个选项 ,否则会默认安装最新版本,可以右下角选择版本

Django项目的启动

命令行创建项目 

django-admin.py startproject 项目名

pycharm 创建项目

 File --> New project --> 左侧选Django --> 右侧填项目路径,并且勾选python.exe

可选创建 自定义名字的一个APP

PyCharm启动

点绿色的小三角,直接可以启动Django项目 (前提是小三角左边是你的Django项目名)

命令行启动

在项目的根目录下(也就是有manage.py的那个目录),运行:

python3 manage.py runserver IP:端口    --> 在指定的IP和端口启动
python3 manage.py runserver 端口     --> 在指定的端口启动
python3 manage.py runserver       --> 默认在本机的8000端口启动

Django 项目的重要组成文件

 项目/项目名/settings.py 文件

  存放项目配置的参数文件

项目/项目名/urls.py 文件

 保存业务的逻辑与路径的对应关系 

项目/static 文件夹

  存放静态文件的文件夹,如css,js,图片等

  静态文件夹为手动创建,因此需要在 setting.py 中添加此代码

# 静态文件保存目录的别名
STATIC_URL = '/static/' # 所有静态文件(css/js/图片)都放在我下面你配置的文件夹中
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]

  

项目/templates文件夹

保存页面展示文件存放目录

  

项目/APP 文件夹

分支项目下的应用,方便我们在一个大的Django项目中,管理实现不同的业务功能.

  project --> 项目

  APP --> 应用

创建APP的命令

命令行,在Django项目的根目录输入:

python3 manage.py startapp app名字

创建APP后需要在 setting.py 的 INSTALLED_APPS 中加入一行新的

’app名字.apps.App名字Config’

项目/APP名/models.py 文件

创建数据库使用便捷的ORM方式,保存的数据库表现在 models.py 中

项目/APP名/views.py 文件

保存业务的主要逻辑实现功能代码

ORM介绍及使用准备

优势

优点:  

  简单,不用自己写SQL语句

  开发效率高

缺点:  

  记忆你ROM特殊的语法  

  相对于大神些的SQL语句,执行效率有差距

ORM的对应关系

类 ---> 数据表
对象 ---> 数据行
属性 ---> 字段

ORM能做的事儿

操作数据表 --> 创建表/删除表/修改表

操作数据行 --> 数据的增删改查

ORM做不到的事 

不能创建数据库,自己动手创建数据库

使用Django的ORM详细步骤

  1 . 自己动手创建数据库

 create database 数据库名;

  2 . 在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库)

# 数据库相关的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 连接的数据库类型
'HOST': '127.0.0.1', # 连接数据库的地址
'PORT': 3306, # 端口
'NAME': "day61", # 数据库名称
'USER': 'root', # 用户
'PASSWORD': '123456' # 密码
}
}

  3 . 告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库        

    在项目/__init__.py文件中,写下面两句

import pymysql
# 告诉Django用pymysql来代替默认的MySQLdb
pymysql.install_as_MySQLdb()

  4 . 在app下面的models.py文件中定义一个类,这个类必须继承models.Model

class 类名(models.Model):
...  

  

创建后命令的执行数据库的创建和修改都需要执行两个命令

python3 manage.py makemigrations	# 创建执行命令
python3 manage.py migrate # 上传执行命令

Django 框架基础的更多相关文章

  1. Django框架——基础之视图系统(View.py)

    Django框架之View.py(视图文件) 1. 视图简介 视图层是Django处理请求的核心代码层,我们大多数Python代码都集中在这一层面. 它对外接收用户请求,对内调度模型层和模版层,统合数 ...

  2. Django框架基础之Form组件

    服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息 form组件的2大功能:       1 验证(显示错误信息)       2 保留用户上次输入 ...

  3. Django框架基础知识01-配置环境

    Django框架 Django是个怎样的东西呢? Web应用框架----Django  http服务器:用来接受用户请求,并将请求转发给web应用框架进行处理. Web应用框架处理完以后再发送给htt ...

  4. Django框架基础知识08-表关联对象及多表查询

    1.自定义主键字段的创建 AutoFiled(pirmary_key=True) # 一般不会自定义,int类型,自增长 一般不自定义主键. 2.order_by asc desc from djan ...

  5. Django框架——基础之路由系统(urls.py)

    1.URL路由系统前言 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除 ...

  6. Django框架——基础之路由系统(urls.py)11111111

    1.URL路由系统前言 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除 ...

  7. Django框架——基础教程(总)

    1. Django简介 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架 ...

  8. django框架基础-框架介绍-长期维护

    ###############    MVC架构介绍    ################ # MVC架构 # 一个软件框架有很多的模块,每一个模块有不同的功能 # 模块与模块之间相互配合来完成软件 ...

  9. django框架基础

    所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 最简单的web框架 import socket sk = socke ...

随机推荐

  1. OPC协议解析-OPC UA OPC统一架构

    1    什么是OPC UA 为了应对标准化和跨平台的趋势,为了更好的推广OPC,OPC基金会近些年在之前OPC成功应用的基础上推出了一个新的OPC标准-OPC UA.OPC UA接口协议包含了之前的 ...

  2. Mysql学习路线

    本文内容: mysql学习路线 首发日期:2018-04-19 由于现在很多都是有api了,很多问题都转接到编程语言上来处理了,所以这篇mysql之路仅仅是作为“了解”之用.不深究mysql. 很多东 ...

  3. win10系统关闭自动更新

    win10关闭自动更新 步骤①右键“此电脑”选择“管理”选项 步骤②(如下图所示): 步骤③:     步骤④: 好啦!这样就大功告成了!

  4. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  5. More Moore and More than Moore

    More Moore and More than Moore ——基于硅光电子学探讨摩尔定律的延续和发展 1965年4月,<电子学>杂志第114页上刊载了Intel创始人之一戈登·摩尔(G ...

  6. MongoDB的搭建并配置主从以及读写分离

    1.环境准备  1.Centos7 2.mongodb3.4.93.三台机器IP分别是:10.170.1.16.10.170.1.18.10.170.1.33 2.mongdb数据库的安装 如下操作是 ...

  7. git、github、gitlab之间的关系

    GIt-版本控制工具:GitHub-一个网站平台,提供给用户空间存储git仓储,保存用户的一些数据文档或者代码等:GitLab - 基于Git的项目管理软件. Git分布式版本控制系统 Git是一款自 ...

  8. 基于SVM的鸢尾花数据集分类实现[使用Matlab]

    iris数据集的中文名是安德森鸢尾花卉数据集,英文全称是Anderson’s Iris data set.iris包含150个样本,对应数据集的每行数据.每行数据包含每个样本的四个特征和样本的类别信息 ...

  9. UVALive - 3523 - Knights of the Round Table

    Problem  UVALive - 3523 - Knights of the Round Table Time Limit: 4500 mSec Problem Description Input ...

  10. 授权普通非DBA用户可以有权限查看执行计划的方法

    drop table PLAN_TABLE;   删除原plan表   执行ORACLE自带的创建脚本 @?/rdbms/admin/utlxplan.sql   创建同义词 create or re ...