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. LVS入门篇(一)之ARP协议

    1.概念 地址解析协议,即ARP(AddressResolutionProtocol),是根据IP地址获取物理MAC地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上 ...

  2. Java中如何创建一个确保唯一的名字,文件名

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客要讲的有,如何创建一个唯一的文件名,创建一个唯一的String字符串 为什么要创建唯一呢?再很多情况下 ...

  3. python 内置模块(os)

    1.OS os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname")  改变当前脚本工作目录:相当于shell下cdos. ...

  4. 在腾讯云上安装mysql遇到的问题

    卸载mysql: 1.sudo apt-get autoremove --purge mysql-server-5.5 5.5 是数据库版本, mysql -v 显示版本信息 2.sudo apt-g ...

  5. Ubuntu18.04重装指南

    Guide google chrome sougou 谷歌服务助手\(\rightarrow\)谷歌访问助手(谷歌应用商店)登录谷歌账号(cnyalitea@gmail.com)然后同步. \(\te ...

  6. 使用经验风险最小化ERM方法来估计模型误差 开坑

    虽然已经学习了许多机器学习的方法,可只有我们必须知道何时何处使用哪种方法,才能将他们正确运用起来. 那不妨使用经验最小化ERM方法来估计 . 首先: 其中, δ代表训练出错的概率 k代表假设类的个数 ...

  7. Python3 函数式编程自带函数

    一 map函数 引子 需求1:num1=[1,2,3,4],我的需求是把num1中的每个元素平方后组成新列表. ret = [] num1 = [1,2,3,4] for i in num1: ret ...

  8. USACO 3.2.6 Sweet Butter 香甜的黄油(最短路)

    Description 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油.当然,他 ...

  9. Scrum立会报告+燃尽图(十月二十六日总第十七次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...

  10. 咱们的team1序章

    之前都参加了好多组织,这是第一次参加变成组织.首先要介绍团队名称了,为什么叫“咱们的team”呢,因为,我们需要每个人都认真的参与进来,只有每个人都十分投入地参与进来,这个team才能称之为一个tea ...