python三大主流Web框架

Django

优点:大而全,自身携带的组件和功能特别特别多,类似于航空母舰

缺点:过于笨重,所需功能不多时,Django依然提供这些功能,占据内存

Flask

优点:小而精 自身携带的组件和功能特别特别少 就类似于游骑兵,自身功能比较少 但是第三方支持该框架的模块特别特别多

缺点:受限于第三方模块,尤其是版本更新

Tornado

优点:异步非阻塞,天然支持高并发,甚至可以开发游戏服务器

Django介绍

参照 https://baike.baidu.com/item/django/61531?fr=aladdin

https://www.cnblogs.com/Dominic-Ji/articles/10982272.html

https://code.ziqiangxuetang.com/django/django-intro.html

Django是一个开源MVC(模型model,视图view,控制器Control)模式的Web应用框架,由Python写成。其核心组件有:

  • 用于创建模型的对象关系映射
  • 为最终用户设计较好的管理界面
  • URL设计
  • 设计者友好的模板语言
  • 缓存系统

它其实也是一个MTV的设计模式,即模型Model,视图View和模版Template。由于控制器接受用户输入的部分由框架自行处理,因此,django更关注的是模型、模板和视图,它们各自的职责是

层次 职责
模型(Model),数据存取层 处理与数据相关的所有事务:存取、验证有效性、包含哪些方法以及数据之间的关系等
模板(Template),展示层 处理与数据展示相关的事务:页面美化或在其他类型文档中的展示效果
视图(View),业务逻辑层 存取模型及调用合适的模板等相关逻辑,是模型和模板的桥梁

Django 安装

  • 注意事项

    • 计算机名称不能有中文
    • 项目文件不能有中文
    • 一个pycharm窗口就是一个单独的完整的项目
  • 版本选择

推荐使用1.11.09~1.11.13版本(稳定)。

ps:如果已安装其他版本,无须卸载,在安装新版本时,会自动先卸载之前的版本再安装

  • 安装

命令行:pip3[根据python解释器] install django=1.11.11[版本号]

测试是否安装成功命令行:django-admin

  • 基本命令(cmd中执行)

    • 创建django 项目(背下来)

    注意:命令行创建的django项目没有templates模板文件夹,需要手动创建,且自行在settings文件中配置路径

    django-admin.py startproject 项目名称[必须是合法的python包名]
    • 启动django项目(背下来)

    注意:必须在项目目录下执行,runserver 后可接主机名和端口号,默认是本机地址127.0.0.1:8000

    python3[解释器名称] manage.py runserver [host:port]
    • 创建app(application,相当于一个个独立的功能模块)(背下来)

    一般一个项目有多个app,通用的app也可以在多个项目中使用

    注意:必须在项目目录下创建,创建完成后一定要去settings.py 中配置

    python3 startapp app名称[必须是合法的python包名]

    django-admin.py startapp app名称
  • django项目文件介绍

    • urls.py:路由视图函数(views.py)对象关系,项目的总路由
    • views.py:视图函数(日常编程全在这,重点掌握)
    • models.py:模型类(ORM)
    • templates文件夹:存放views.py中的函数渲染的html模板
    • admin.py:django后台管理
    • settings.py:项目配置文件,比如数据库配置、静态文件的位置
    • tests.py:测试文件

django入门必会三板斧-HttpResponse,render,redirect

HttpResponse:将字符串返回给浏览器

# views.py
def index(request):
# 业务逻辑代码
return HttpResponse('hello, this is index code -from HttpResponse')

render:将html文档(动态页面也可)返回给浏览器

注意:模板的渲染,将数据在后端按照模板语法放入html文档中对应的位置

# views.py
def index(request):
# 业务逻辑代码
# # 传参:2个参数,第一个参数必须是request,第二参数是返回的html文档
# return render(request, 'index.html')
# 传参:3个参数,第一个参数必须是request,第二参数是返回的html文档
# 第三参数是保存数据的字典参数,将数据填充到html文档后,再将html文档返回
# 类似jinja2
return render(request, 'index.html', {'name': 'lee', 'hobby': ['study', 'smoke']})

redirect:重定向,转到指定的URL

# views.py
def index(request):
# return redirect('/login/') # 本地的路径
return redirect('https://www.luffycity.com/home')

踩过的坑

1.代码修改了,刷新页面没有效果

可能是同一个端口开了多个服务,django运行的是第一次启动的服务;也有可能时浏览器缓存问题

Django简介、安装和入门的更多相关文章

  1. 【django入门教程】Django的安装和入门

    很多初学django的朋友,都不知道如何安装django开发以及django的入门,今天小编就给大家讲讲django入门教程. 注明:python版本为3.3.1.Django版本为1.5.1,操作系 ...

  2. Django简介及安装

    Django简介及安装 我们都知道,Django是一种基于Python的Web开发框架. 那么,什么是Web开发?Web开发指的是开发基于B/S架构,通过前后端的配合,将后台服务器的数据在浏览器上展现 ...

  3. python框架Django简介与安装

    Django简介 关注公众号"轻松学编程"了解更多. 发布于2005年,最负盛名且成熟的Python网络框架 最初用来制作在线新闻的Web站点 开源Web框架,遵守BSD协议 BS ...

  4. Django简介以及安装

    目录 前言 Web框架本质 服务器和应用程序 基于第三方模块实现Web框架 Python三大主流Web框架 django flask tornado Django框架介绍 安装 创建项目 创建App ...

  5. Django简介

    Django, 应该读作jan go,读音演示 D是不发音的---发音的---音的---的--- django简介:urls.py网址入口,关联到views.py views.py处理用户发出的请求, ...

  6. Django之web应用、http协议和django简介

    等了好久终于等到今天,盼了好久终于把梦实现,啦啦啦.....学习python两个多月了,终于等到python的高潮,老师说要是把Django学会了,python的web开发就差不多了,也相当于迎来了p ...

  7. Django简介及Django项目的创建详述

    Django简介 Django是一个开源的Web应用框架,由Python写成.但是,百度百科中讲它采用了MVC框架模式,其实这个解释不准确. 确切的讲,Django的模式是:路由控制+MTV模式.所谓 ...

  8. Kotlin新语言简介和快速入门知识点

    Kotlin新语言简介和快速入门知识点 简介:Kotlin是最近由JetBrains发布的一种基于JVM的编程语言,已经被Google宣布为开发Android App的一级语言Kotlin有着与Jav ...

  9. windows下nodejs express安装及入门网站,视频资料,开源项目介绍

    windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...

  10. Django准备知识-web应用、http协议、web框架、Django简介

    一.web应用 Web应用程序是一种可以通过web访问的应用程序(web应用本质是基于socket实现的应用程序),程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 ...

随机推荐

  1. Collections.sort list内部排序

    public class ComparatorUser implements Comparator{   public int compare(Object arg0, Object arg1) {  ...

  2. HSV 和 HLS颜色空间

    颜色空间 颜色空间是特定的颜色组织:它提供了将颜色分类,并以数字图像表示的方法. RGB 是红绿蓝颜色空间.你可以将其视为 3D 空间,在这种情况下是立方体,其中任何颜色都可以用 R.G 和 B 值的 ...

  3. 【codeforces 798D】Mike and distribution

    [题目链接]:http://codeforces.com/contest/798/problem/D [题意] 让你选一个下标集合 p1,p2,p3..pk 使得2*(a[p1]+a[p2]+..+a ...

  4. hdu 5745 La Vie en rose(2016多校第二场)

    La Vie en rose Time Limit: 14000/7000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  5. 『PyTorch』第十一弹_torch.optim优化器 每层定制参数

    一.简化前馈网络LeNet 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 im ...

  6. [Pytorch]基于混和精度的模型加速

    这篇博客是在pytorch中基于apex使用混合精度加速的一个偏工程的描述,原理层面的解释并不是这篇博客的目的,不过在参考部分提供了非常有价值的资料,可以进一步研究. 一个关键原则:“仅仅在权重更新的 ...

  7. [kuangbin带你飞]专题九 连通图B - Network UVA - 315

    判断割点的性质: 如果点y满足 low[y]>=dfn[x] 且不是根节点 或者是根节点,满足上述式子的有两个及其以上. 就是割点 如果是起点,那么至少需要两个子节点满足上述条件,因为它是根节点 ...

  8. c++ 基本使用

    1 枚举 enum ShapeType { circle, square, rectangle }; int main() { ShapeType shape = circle; switch(sha ...

  9. html(三)注册页面与重定向

    注册和登陆的建立是通过界面post提交表单然后在测试界面获取提交的值,进行判断. 1.测试传来的值,是否为空,将值传回到测试界面: ("Reg.jsp?errorCode=" + ...

  10. springboot + redis + 注解 + 拦截器 实现接口幂等性校验

    一.概念 幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如: 订单接口, 不能多次创建订单 支付接口, 重复支付同一笔订单只能扣一次钱 支付宝回调接口, 可能会多 ...