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. bzoj4998 星球联盟

    bzoj4998 星球联盟 原题链接 题解 先按照输入顺序建一棵树(森林),然后用一个并查集维护联盟的关系,对于不是树上的边\(a-b\),就把\(a-lca(a,b),b-lca(a,b)\)全部合 ...

  2. JS Windows.document对象

    四中选择器:class ,id , name , 标签 通过选择器获取对象: ...................................ClassName('');  -- class选择 ...

  3. scrapy 爬取知乎问题、答案 ,并异步写入数据库(mysql)

      python版本  python2.7 爬取知乎流程: 一 .分析 在访问知乎首页的时候(https://www.zhihu.com),在没有登录的情况下,会进行重定向到(https://www. ...

  4. C++操作符优先级带来的错误

    在刷LeetCode题目:190. 颠倒二进制位:颠倒给定的 32 位无符号整数的二进制位时,可以利用左移和右移操作符来实现数字翻转: 错误解法: class Solution { public: u ...

  5. PHPCMS的产品筛选功能

    如下图所示功能: 首先,用下面这些代码替换掉phpcms/libs/functions/extention.func.php的内容 <?php /** * extention.func.php ...

  6. Laxcus大数据操作系统2.0(5)- 第二章 数据组织

    第二章 数据组织 在数据的组织结构设计上,Laxcus严格遵循数据和数据描述分离的原则,这个理念与关系数据库完全一致.在此基础上,为了保证大规模数据存取和计算的需要,我们设计了大量新的数据处理技术.同 ...

  7. JAVA学习笔记--策略设计模式与适配器模式

    一.策略设计模式 创建一个能够根据所传递对象的不同而具有不同行为的方法被称为策略设计模式:这类方法包含所要执行的算法中固定不变的部分,而“策略”包含变化的部分.策略就是传递进去的参数对象,它包含要执行 ...

  8. 华为笔试——C++消重输出

    题目:消重输出 题目介绍: 输入一个正整数,给出消除重复数字以后最大的整数,注意需要考虑长整数. 例: 输入:988274320 输出:9874320 题目分析:这个结果的实现需要两个步骤:消重和排序 ...

  9. windows8和windows server2012不联网安装.net 3.5(包括2.0和3.0)

    安装完win8后 发现系统默认没有安装.net3.5 如果使用在线更新的话需要很久才能完成,特别是当前的网速以及微软的服务器.速度很忙,其实我们利用win8的安装盘就可以不需要联网更新,而且几分钟就搞 ...

  10. Friends and Cookies(思维)

    Abood's birthday has come, and his n friends are aligned in a single line from 1 to n, waiting for t ...