Django简介、安装和入门
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简介、安装和入门的更多相关文章
- 【django入门教程】Django的安装和入门
很多初学django的朋友,都不知道如何安装django开发以及django的入门,今天小编就给大家讲讲django入门教程. 注明:python版本为3.3.1.Django版本为1.5.1,操作系 ...
- Django简介及安装
Django简介及安装 我们都知道,Django是一种基于Python的Web开发框架. 那么,什么是Web开发?Web开发指的是开发基于B/S架构,通过前后端的配合,将后台服务器的数据在浏览器上展现 ...
- python框架Django简介与安装
Django简介 关注公众号"轻松学编程"了解更多. 发布于2005年,最负盛名且成熟的Python网络框架 最初用来制作在线新闻的Web站点 开源Web框架,遵守BSD协议 BS ...
- Django简介以及安装
目录 前言 Web框架本质 服务器和应用程序 基于第三方模块实现Web框架 Python三大主流Web框架 django flask tornado Django框架介绍 安装 创建项目 创建App ...
- Django简介
Django, 应该读作jan go,读音演示 D是不发音的---发音的---音的---的--- django简介:urls.py网址入口,关联到views.py views.py处理用户发出的请求, ...
- Django之web应用、http协议和django简介
等了好久终于等到今天,盼了好久终于把梦实现,啦啦啦.....学习python两个多月了,终于等到python的高潮,老师说要是把Django学会了,python的web开发就差不多了,也相当于迎来了p ...
- Django简介及Django项目的创建详述
Django简介 Django是一个开源的Web应用框架,由Python写成.但是,百度百科中讲它采用了MVC框架模式,其实这个解释不准确. 确切的讲,Django的模式是:路由控制+MTV模式.所谓 ...
- Kotlin新语言简介和快速入门知识点
Kotlin新语言简介和快速入门知识点 简介:Kotlin是最近由JetBrains发布的一种基于JVM的编程语言,已经被Google宣布为开发Android App的一级语言Kotlin有着与Jav ...
- windows下nodejs express安装及入门网站,视频资料,开源项目介绍
windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...
- Django准备知识-web应用、http协议、web框架、Django简介
一.web应用 Web应用程序是一种可以通过web访问的应用程序(web应用本质是基于socket实现的应用程序),程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 ...
随机推荐
- Collections.sort list内部排序
public class ComparatorUser implements Comparator{ public int compare(Object arg0, Object arg1) { ...
- HSV 和 HLS颜色空间
颜色空间 颜色空间是特定的颜色组织:它提供了将颜色分类,并以数字图像表示的方法. RGB 是红绿蓝颜色空间.你可以将其视为 3D 空间,在这种情况下是立方体,其中任何颜色都可以用 R.G 和 B 值的 ...
- 【codeforces 798D】Mike and distribution
[题目链接]:http://codeforces.com/contest/798/problem/D [题意] 让你选一个下标集合 p1,p2,p3..pk 使得2*(a[p1]+a[p2]+..+a ...
- 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 ...
- 『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 ...
- [Pytorch]基于混和精度的模型加速
这篇博客是在pytorch中基于apex使用混合精度加速的一个偏工程的描述,原理层面的解释并不是这篇博客的目的,不过在参考部分提供了非常有价值的资料,可以进一步研究. 一个关键原则:“仅仅在权重更新的 ...
- [kuangbin带你飞]专题九 连通图B - Network UVA - 315
判断割点的性质: 如果点y满足 low[y]>=dfn[x] 且不是根节点 或者是根节点,满足上述式子的有两个及其以上. 就是割点 如果是起点,那么至少需要两个子节点满足上述条件,因为它是根节点 ...
- c++ 基本使用
1 枚举 enum ShapeType { circle, square, rectangle }; int main() { ShapeType shape = circle; switch(sha ...
- html(三)注册页面与重定向
注册和登陆的建立是通过界面post提交表单然后在测试界面获取提交的值,进行判断. 1.测试传来的值,是否为空,将值传回到测试界面: ("Reg.jsp?errorCode=" + ...
- springboot + redis + 注解 + 拦截器 实现接口幂等性校验
一.概念 幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如: 订单接口, 不能多次创建订单 支付接口, 重复支付同一笔订单只能扣一次钱 支付宝回调接口, 可能会多 ...