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.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...
随机推荐
- Web03_JavaScript
案例一:使用JS完成注册页面表单校验 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- 我们公司的delphi代码(胆不是我写的!),看看,你觉得怎么样
unit unt_LotBill_dyc; interface uses windows, SysUtils, Classes, ComCtrls, Forms, Controls, StrUtils ...
- python 爬取动态数据
按照:https://dryscrape.readthedocs.io/en/latest/installation.html 安装dryscrape 以下是简单实现 import dryscrape ...
- Pycharm最新激活码汇总,pycharm2019激活码
Pycharm激活码汇总 激活过程如下: 1.双击运行桌面上的Pycharm图标,进入下图界面,选择Do not import settings,之后选择OK,进入下一步. 2.拖动到底部,选择Acc ...
- ElasticSearch Kibana 创建索引,删除索引,查看索引配置
1.输入命令,点击绿色的三角形箭头. PUT chuyuan //创建索引 GET chuyuan/_settings //查看chuyuan索引下的配置 GET _all/_settings ...
- [转帖]预警 | Linux 爆“SACK Panic”远程DoS漏洞,大量主机受影响
预警 | Linux 爆“SACK Panic”远程DoS漏洞,大量主机受影响 https://cloud.tencent.com/developer/article/1447879 所有的 版本 ...
- MySQL -2- 体系结构-多实例模块
0.在已创建mysql,port=3306的数据库前提下 需要删除/etc/.my.cnf再做以下操作 cp /etc/my.cnf /etc/my.cnf.3306 1.mkdir -p /u02/ ...
- GPIB、USB、PCI、PCI Express和以太网/LAN/LXI
GPIB 我们研究的第一个总线是IEEE 488总线,较为熟悉的称谓是GPIB(通用接口总线).GPIB是一种在业界已经得到证明的专为仪器控制应用设计的总线.GPIB在过去30年来一直是鲁棒的.可靠的 ...
- shell with hadoop
shell 命令操作 hadoop 之前多少提及过,这里做个总结. shell with hdfs 基本命令 bin/hadoop fs 大于下面的命令 bin/hdfs dfs dfs 是 fs 的 ...
- 34、Scrapy 知识总结
Scrapy 知识总结 1.安装 pip install wheel pip install https://download.lfd.uci.edu/pythonlibs/q5gtlas ...