user-----URL对应关系-------视图函数def func1()--------------

函数给用户返回的实质上就是一个字符串,过程:通过open函数打开HTML,把HTML读到内存中,然后把里面的字符串返回给用户,如果里面有特殊字符的话,会先处理。

views视图可以看作是前端与数据库的中间人,他会将前端想要的数据从数据库中读出来给前端。他也会将用户要想保存的数据写到数据库。

如下如下:

	1.创建Django工程
Django-admin startproject 工程名 mysite
settings.py---主配置文件
urls.py-------URL路由文件
wsgi.py-------网络通信接口
templates-------HTML文件的归置目录
manage.py-------diango管理主程序,如下:
运行Django功能:python manage.py runserver 127.0.0.1:8001
创建APP:python manage.py startapp cmdb
       2.创建APP去处理业务请求,一个工程下面可以有多个APP.相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。
所有的APP共享项目资源。 cd 工程名
python manage.py startapp cmdb app目录:
-migrations 数据操作记录,是自动创建的。数据修改表结构
-__init__.py #在python3里面可有可无都行
-__init__.py
-admin.py #django 为我们提供的后台管理。
-apps.py #配置当前App的
-models.py #ORM,写指定的类,通过命令可以创建数据库结构。
-tests.py #单元测试
-views.py #业务代码。这个才是真正写代码的地方,上面的都是做配置的。 3.静态文件配置-在工程下面的setting中,即主配置文件中进行配置,CSS,JS等。
mysite.settings.py,配置如下:
STATICFILES_DIRS=(OS.PATH.JOIN(BASE_DIR,'static'),) #因为是元组,一定要有逗号 4.模板路径配置-在工程下面的setting中,即主配置文件中进行配置,HTML等。
DIRS==> [os.path.join(BASE_DIR,'templates'),] 5.关闭django的跨站请求保护机制-在工程下面的setting中,即主配置文件中进行配置
注释掉:
#'django.middleware.csrf.CsrfViewMiddleware' 6.定义路由规则-在工程下面的urls.py中,即URL路由文件中进行配置
urls.py
'login'--->函数名(只是对应一个函数名,后面是不带括号的) 7.定义视图函数-APP下的views.py中写具体的函数内容。
app->views.py
def func(request): #request中包含客户端发来的请求中的所有内容
#去请求里面取数据
#request.method: GET/POST #获取请求的方式
#request.GET.get('',None) #获取请求发来的数据
127.0.0.1:8000/home?nid=123&name=Jack
#request.POST.get('email',None) 通过视图函数给用户返回数据的3中方法
#return HttpResponse('字符串')
#return render(request,'html模板的路径') 例如:test1/home.html
#return redirect('/只能填URL',) 不能填html模板的路径,只能填URL 8.模板渲染
有一套特殊的模板语言
======{{变量名}} 1). def func(request):
return render(request,'index.html') #发送给用户的是静态的数据 2). def func(request):
return render(request,'index.html',{'current_user':"Jack"}) # index.html
<html> <body>
<div>{{current_user}}</div> #{{current_user}}相当于取变量值
</body>
</html> 步骤:
1>.用户请求来了,首先到达视图函数
2>.视图函数先去把模板拿过来,模板里面有特殊标记,再把值与模板进行渲染,渲染完成之后就变成了字符串。如下:
================最后生成的字符串,整体返回给用户。特殊的标记是在什么时候所做的替换?---视图函数在返回数据的那一刹那之前做的。
所以咱们的浏览器拿到字符串的时候,永远是被渲染完毕的字符串。
<html> <body>
<div>Jack</div>
</body>
</html> ======For循环
def func(request):
return render(request,'index.html',{'current_user':"Jack",'user_list':['alex','eric']}) index.html
<html> <body>
<div>{{current_user}}</div> #{{current_user}}相当于取变量值
<ul>
{% for row in user_list %} #row代表列表中的每一个元素,是一个变量名
<li>{{row}}</li>
{% endfor %}
</ul>
</body>
</html> ======字典索引,注意字典与列表的取法不同,一个用的是角标,一个用的是key值。
def func(request):
return render(request,'index.html',{
'current_user':"Jack",
'user_list':['alex','eric'],
'user_dict'{'k1':'v1','k2':'v2'}}) index.html
<html> <body>
<div>{{current_user}}</div> #{{current_user}}相当于取变量值
<a>{{user_list.1}}</a>
<a>{{user_dict.k1}}</a>
<a>{{user_dict.k2}}</a>
</body>
</html> ======条件======= if可以嵌套if循环,也可以嵌套到for循环里面。
def func(request):
return render(request,'index.html',{
'current_user':"Jack",
'age':18,
'user_list':['alex','eric'],
'user_dict'{'k1':'v1','k2':'v2'}}) index.html
<html> <body>
<div>{{current_user}}</div> #{{current_user}}相当于取变量值
<a>{{user_list.1}}</a>
<a>{{user_dict.k1}}</a>
<a>{{user_dict.k2}}</a> {% if age %}
<a>有年龄</a>
{% if age > 16 %}
<a>老男人</a>
{% else %}
<a>小鲜肉</a>
{% endif %}
{% else %}
<a>没年龄</a>
{% endif %} </body>
</html>

 图标示范:可以一目了然,去哪里配置什么。

 

索引的时候,用的都是点 XX.0,XX.1这样来取元素的。

Django文字教程的更多相关文章

  1. 【秒懂】号称最为简明实用的Django上手教程

    号称最为简明实用的Django上手教程 作者:白宁超 2017年8月24日09:37:35 摘要:Django的学习教程也是分门别类,形式不一.或是较为体系的官方文档,或者风格自由的博客文档,或者偏向 ...

  2. Django 基础教程

    Django 基础教程 这是第一篇 Django 简介 »  Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站! 你一定可以学会,Django 很简单 ...

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

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

  4. 【秒懂】号称最为简明实用的Django上手教程(下)

    号称最为简明实用的Django上手教程(下) 作者:白宁超 2017年8月25日08:51:58 摘要:上文号称[最为简明实用的Django上手教程]介绍了django基本概念.配置和相关操作.相信通 ...

  5. 微信小程序开发语音识别文字教程

    微信小程序开发语音识别文字教程 现在后台 添加插件 微信同声传译 然后app.json 加入插件 "plugins": { "WechatSI": { &quo ...

  6. Django自学教程PDF高清电子书百度云网盘免费领取

    点击获取提取码:x3di 你一定可以学会,Django 很简单! <Django自学教程>的作者学习了全部的 Django英文的官方文档,觉得国内比较好的Django学习资源不多,所以决定 ...

  7. ubuntu部署django详细教程

    教程使用的软件版本:Ubuntu 18.04.1 LTS,django2.0,Python 3.6.5.nginx-1.13.7.uWSGI (2.0.17.1),Ubuntu是纯净的,全新的.下面我 ...

  8. Django笔记&教程 0-1 前言

    Django 自学笔记兼学习教程第0章第1节--前言 点击查看教程总目录 1 最初的想法 自学Django已经有一段时间了,自认收获不少,学的还算可以,然而实际去做项目写代码的时候,很多用法记得不清, ...

  9. django入门教程(下)

    在两篇文章帮你入门Django(上)一文中,我们已经做了一个简单的小网站,实现了保存用户数据到数据库,以及从后台数据库读取数据显示到网页上这两个功能. 看上去没有什么问题了,不过我们可以让它变得更加完 ...

随机推荐

  1. 180730-Spring之RequestBody的使用姿势小结

    Spring之RequestBody的使用姿势小结 SpringMVC中处理请求参数有好几种不同的方式,如我们常见的下面几种 根据 HttpServletRequest 对象获取 根据 @PathVa ...

  2. sql 命令使用简单记录

    半个月前就想记下用过的SQL命令的!!!     主题: 按时间查询: https://blog.csdn.net/hejpyes/article/details/41863349   左关联: se ...

  3. spring cloud 入门系列七:基于Git存储的分布式配置中心--Spring Cloud Config

    我们前面接触到的spring cloud组件都是基于Netflix的组件进行实现的,这次我们来看下spring cloud 团队自己创建的一个全新项目:Spring Cloud Config.它用来为 ...

  4. 240. 搜索二维矩阵 II

    二维数组搜索 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 ...

  5. join 中的on和where的区别

    数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表, 然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1.on条件是在生成临时表时使用的条 ...

  6. STC 单片机ADC实现原理

    模数转换器原理 数模转换器( analog to digitI converter,ADC),简称为A/D,ADC是链接模拟世界和数字世界的桥梁.它用于将连续的模拟信号转换为数字形式离散信号.典型的, ...

  7. Python mutilprocessing Processing 父子进程共享文件对象?

    multiprocessing python多进程模块, 于是, Processing也是多进程的宠儿. 但今天讨论的问题, 似乎也能引起我们一番重视 直接上代码:     1 2 3 4 5 6 7 ...

  8. 【探路者】团队中的每一次感动——Alpha版

    我是[探路者]团队的leader翟宇豪.在软件工程课程开始时,当听说有团队作业这个任务时,我个人还是对leader这个角色很期待的.我很希望通过自己的努力,让我所在的团队变得更好,让组里的每一个成员在 ...

  9. OOP 1.5 类和对象的基本概念与用法1

    1.定义 面向对象的基本特点:抽象.封装.继承.多态 面向对象程序设计方法:将某类客观事物的共同特点归纳出来,形成一个数据结构 抽象:将事物所能进行的行为归纳出来,形成一个个函数,这些函数可以用来操作 ...

  10. 【树上DFS】Tree and Polynomials

    http://codeforces.com/gym/101372 D push1[i][k]:所有操作1总共要让节点i下推多少系数k push2[i][k]:所有操作2总共要让节点i上推多少系数k s ...