<table style="height: 30px; background-color: #afeeee; width: 1266px; ; width: 1266px;" border="0">
<tr><td><span style="font-size: 16px;">一、简介</td>
</tr></table>
Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:
模型(Model),即数据存取层
处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
模板(Template),即表现层
处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
视图(View),即业务逻辑层
存取模型及调取恰当模板的相关逻辑。模型与模板之间的桥梁。
基本目录结构:
<span style="color: #000000;">pip3 install django
pip install django=1.9.5
<span style="color: #008000;">#<span style="color: #008000;">检查django是否安装成功
<span style="color: #000000;">
运行python终端
>>> <span style="color: #0000ff;">import<span style="color: #000000;"> django
>>> django.VERSION
2、创建django工程以及app
pycharm中创建:file-->New Project-->Django-->create
使用命令创建
python manage.py startapp appname
tips:django中的工程和app概念,django相当于一个大项目,而其中的小系统如监控、资产管理属于这个项目的一部分我们称之为app。
app目录结构
3、配置django
模板配置:django工程-->相应工程名-->settings.py-->TEMPLATES(默认配置好的)
静态目录(图片、css)配置:django工程-->相应工程名-->settings.py-->STATICFILES_DIRS(需要自己手动添加,目录使用逗号隔开)
tips:若访问某个连接出现forbbiden,很有可能是有CSRF原因,可以在配置中注释
settings.py
4、其他django常用命令
2、使用views处理用户请求(app下面的views.py)
render(request,) this is wd ") #使用HttpResponse响应用户请求,参数为字符串
3、在templates目录中创建模板文件index.html,若模板文件中需要引入css或者images等内容,路径需要加上static,如
4、运行django程序,访问http://127.0.0.1:8000你的站点就会呈现
<table style="height: 30px; background-color: #afeeee; width: 1266px; ; width: 1266px;" border="0">
<tr><td><span style="font-size: 16px;">四、视图(views)介绍</td>
</tr></table>
django中的视图用于处理业务逻辑,常用的定义试图方法有两种:FBV(fuction base view)、CBV(class base view)
1、FBV
views.py使用函数作为逻辑处理
2、CBV
views.py使用面向对象的方式定义
<span style="color: #0000ff;">def</span> get(self,request):<span style="color: #008000;">#</span><span style="color: #008000;">处理get方法的请求</span>
<span style="color: #0000ff;">print</span><span style="color: #000000;">(request.method)
</span><span style="color: #0000ff;">return</span> render(request,<span style="color: #800000;">"</span><span style="color: #800000;">index.html</span><span style="color: #800000;">"</span><span style="color: #000000;">)
</span><span style="color: #0000ff;">def</span> post(self,request):<span style="color: #008000;">#</span><span style="color: #008000;">处理post方法的请求</span>
<span style="color: #0000ff;">print</span><span style="color: #000000;">(request.method)
</span><span style="color: #0000ff;">return</span> render(request,<span style="color: #800000;">"</span><span style="color: #800000;">index.html</span><span style="color: #800000;">"</span>)</pre>
使用cbv进行处理时候最,需要在urls.py中使用as_view()方法
<table style="height: 30px; background-color: #afeeee; width: 1266px; ; width: 1266px;" border="0">
<tr><td><span style="font-size: 16px;">五、模板语言(template)</td>
</tr></table>
若我们想让前端和后台进行数据交互、传递,那我需要了解django中的模板引起,下面简单介绍常用的模板语言。
1、获取单个数据,后台视图传递数据:{{ key }}
视图函数:
模板文件: