python主流框架简介和Django框架的使用
一、手撸简易web框架
- 通过统一思想,对各个功能或者接口进行统一,越来越像是Django框架的流程,实现了低配版的Django。下面是具体的流程图

- 具体步骤为:wsgiref库拿到用户的请求内容,我们判断用户请求的链接地址内容,匹配到对应的后端函数,后端函数内部调用数据库得到需要的数据,再拿到html文件进行读取后,之后再把数据通过jinja2模块语法插入html文件中,最后再把修改过后的html文件return出去。wsgiref库把该html文件内容发送回浏览器,浏览器拿到内容后展示在页面上。结束。
- 基于第三方模块帮你撸
- 使用了wsgiref库和jinja2库
- wsgiref库帮我们封装了http协议,并将http的请求头和请求首行变成字典。即将请求内容解包,响应的内容压包。
- jinja2库专门用来处理后端数据与html页面的交互
- views.py 里面的放的是函数 我们管这些函数叫视图函数 视图层
urls.py 里面放的是 路由(后缀)与视图函数的对应关系 路由层
templates文件夹 里面放的全是html文件 模板层
二、动静态网页
1. 静态网页
- 数据是写死的 万年不变(哪怕改变了 也是人为直接修改)
2. 动态网页
- 数据是实时获取的
eg:
1 后端代码动态获取 当前时间
2 数据是从数据库查询出来的
三、jinja2模板语法
1. jinja2的作用
专门用来处理后端数据与html页面的交互
模板语法(极其贴近python后端语法)
让你能够在html页面上 也能够用后端python语法来操作后端传递过来的数据
语法实例:
<p>{{ userDic }}</p>
<p>{{ userDic.username }}</p>
<p>{{ userDic['age'] }}</p>
<p>{{ userDic.get('hobby') }}</p>
<p>{{ userDic.get('hobby').0 }}</p>
<p>{{ userDic.get('hobby').1 }}</p>
<p>{{ userDic.get('hobby').2 }}</p> {% for user_dic in user_list %}
<tr>
<td>{{ user_dic.id }}</td>
<td>{{ user_dic.username }}</td>
<td>{{ user_dic.password }}</td>
</tr>
{% endfor %}
- 模板的渲染 将后端传递给html文件的数据 在后端处理好 生成一个完整的html文件的过程
- 注意 模板的渲染是在后端完成的 跟前端没有关系
四、python主流web框架
1. django
- 大而全 自带的组件和功能非常非常多 ,类似于航空母舰
- 不足之处:写小项目的时候 可能会比较笨重(大材小用)
2. flask
- 小而精 短小精悍 自带的组件和功能特别特别少 ,类似于游骑兵
- 基本全部依赖于第三方组件
- 不足之处:受限于第三方模块的影响比较大
- 如果将flask所有第三方模块加起来 能够直接盖过django
3. tornado
- 异步非阻塞 这个框架甚至可以用来开发游戏服务器
4. 三个框架的对比
a:socket部分
b:路由匹配
c:模板语法
django:
a用的别人的wsgiref(django默认的)
b自己写的
c自己写的
flask:
a用的别人的werkzeug
b自己写的
c用的别人的jinja2
Tornado:
a,b,c都是自己写的
五、Django 框架
- django是一个以开发app为主要功能的web框架
- Django框架的生命周期流程图

1. 使用Django时的注意事项
计算机名称不能有中文
python解释器不要使用3.7版本 推荐使用版本3.4~3.6
一个pycharm窗口 只能跑一个项目
django版本问题
- django版本以1.11.11为主(1.11.9~1.11.13)
如何检验django是否安装成功
- 命令行敲
django-admin
- 命令行敲
2. 使用Django开发项目
(1)基本使用步骤:
创建Django项目——》创建应用——》配置Django项目的settings文件——》——》导“三板斧”模块(HttpResponse/render/redirect)——》自定义应用功能——》启动Django项目(启动服务端)
(2)具体使用步骤
- 通过命令行创建项目
******首先把当前路径切换到你要保存项目的路径******
1.创建django项目 (即创建文件夹):
django-admin startproject 项目名(例如mysite)
2.创建应用(django支持多app开发):
python3 manage.py startapp 应用名
3.创建templates文件夹:
创建到与应用文件夹同一级文件夹下,用于存放html文件
4.修改创建的Django项目的settings文件:
(1)将创建的app添加到INSTALLED_APPS,(2)并将templates文件夹的路径添加到TEMPLATES的'DIRS',如:'DIRS': [os.path.join(BASE_DIR, 'templates')]。在TEMPLATES中有一个'APP_DIRS': True,此参数表示debug模式。在Linux中,要把它设置为false
5.在应用文件夹的views文件中自定义应用功能函数
此时要导入render,HttpResponse,redirect“三板斧模块”,函数的形参要传入request参数。并将功能函数名添加到Django项目的urls文件的urlpatterns中。
6.启动django项目
首先要切换到Django项目文件夹下
输入命令: python3 manage.py runserver (命令第一个单词根据自己的python的在环境变量的名称来定)
或者输入:python3 manage.py runserver 127.0.0.1:8080
- 通过pycharm创建Django项目
- 这种创建项目的方式要较为简便。他会自动帮我们创建templates文件夹,并且自动把这个文件夹的路径添加到TEMPLATES的'DIRS'中。也就是说我们可以省略方式一中的第三步,和第四步中的第二小步。其他步骤一致。只是不是用命令行创建。
3. Django项目各文件的功能
django项目名
项目同名的文件夹
settings.py 暴露给用户可以配置的配置文件
urls.py 路由与视图函数对应关系
manage.py django的入口文件
应用名文件夹
migrations文件夹 所有数据库相关的操作记录
admin.py django admin后台管理
apps.py 注册app使用
models.py 放所有数据库相关的模型类
tests.py 测试文件
views.py 处理业务逻辑的视图函数
4. Django基本三板斧
HttpResponse 返回字符串
render 返回html文件
可以给html页面传值
def login(request):
user_dic = {'username':'jason','password':'123'}
return render(request,'login.html',{'xxx':user_dic})
redirect 重定向
1.直接写你本网站的路径后缀
2.也可以全路径
def home(request):
# return redirect('/login') # 重定向
return redirect('https://www.baidu.com') # 重定向
5. Django的重启机制
- Django内部有检测机制 ,实时检测所有文件的变化。当我们在开发项目时,有时候会产生,你代码还没写完 就自动重启报错的情况,不用管。
- 我们只需要在完善完功能后自己手动再重启一次即可。
python主流框架简介和Django框架的使用的更多相关文章
- 自创Web框架之过度Django框架
目录 自创Web框架之过度Django框架 软件开发架构 HTTP协议 Web框架之"撸起袖子加油干" Web框架之通过wsgiref加油干 封装优化处理 动静网页 jinjia2 ...
- DRF框架之使用Django框架完成后端接口(API)的定义
学习DRF框架,首先我们就需要明白为什么要学习这个框架. 接下来我们就先用原生的Django框架来定义一个符合RESTful设计方法的接口(API). RESTful接口的需求如下: GET /boo ...
- Selenium3+python自动化010-UnitTest框架简介和单元测试框架使用
一.UnitTest介绍 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过, ...
- Spring笔记——Spring框架简介和初次框架配置
Spring简介 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Deve ...
- Pyhton-Web框架之【Django】
一.什么是web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的 ...
- Django框架——基础教程(总)
1. Django简介 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架 ...
- Django框架01 / http协议、web框架本质
Django框架01 / http协议.web框架本质 目录 Django框架01 / http协议.web框架本质 1.http协议 1.1 http协议简介 1.2 什么是http协议 1.3 H ...
- 第三百零三节,Django框架介绍——用pycharm创建Django项目
Django框架介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...
- 一 Django框架介绍——用pycharm创建Django项目
Django框架介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...
随机推荐
- maven将自己的springboot项目打包成jar包后,作为工具包引入其他项目,找不到jar中的类
将springboot项目打包成jar包,作为工具包导入项目后,找不到jar中的类. 原因是:springboot项目使用了自动的打包插件. 原先的插件配置: <build> <pl ...
- 64位编译器下,将指针转换成UINT32,不需要修改编译选项的编码方式
一些严格的64位编译器,将指针转换成UINT32,会报各种丢失精度的错误. 但很显然,有些时候,我们就是需要转换,且并不会真正丢失精度. 此时不需要修改编译选项的编码方式,有些用处了 示例如下: un ...
- iOS解决表格中TextField,TextView编辑时,输入框被键盘遮挡的问题
方法1:在原来的 UIViewController 内部再添加一层 UITableViewController 代码如下 : // // ViewController.m // 键盘遮挡问题 // / ...
- Day02:正则表达式 / Object / 包装类
JAVA正则表达式 实际开发中,经常需要对字符串数据进行一些复杂的匹配,查找,替换等操作. 通过"正则表达式",可以方便的实现字符串的复杂操作. 正则表达式是一串特定字符,组成一个 ...
- SQL注入(bool型)
sqli-labs 靶场https://blog.csdn.net/qq_41420747/article/details/81836327 教程+靶场 1. https://blog.csdn.ne ...
- vue,基于element的tree组件封装
封装组件代码 // 组件:树 /* 参数说明-属性: 1.treeData:展示数据(array) 2.treeEmptyText:内容为空的时候展示的文本(String) 3.treeNodeKey ...
- 20191209 Linux就该这么学(1-3)
1. 部署虚拟环境安装 Linux 系统 RPM 是为了简化安装的复杂度,而 Yum软件仓库是为了解决软件包之间的依赖关系. 2. 新手必须掌握的Linux命令 通常来讲,计算机硬件是由运算器.控制器 ...
- xmake从入门到精通9:交叉编译详解
xmake是一个基于Lua的轻量级现代化c/c 的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验. 除了win, linux, macOS平台,以及an ...
- tomcat的相关
[针对tomcat修改,那么就直接找关于tomcat的相关文件目录进行修改即可] 1.对tomcat进行相关的操作,启动tomcat时,让其不要出现tomcat主页,与之相反的让其出现404的界面! ...
- json格式和对象类型的转换20170330
(1)对象的类型转换成字符串类型(或者更确切的说是json类型的) JSONObject jo = JSONObject.fromObject(map);常见的java代码转换成json 比如:后台J ...