使用html响应

现在根路径其他啥都没有,也没有做重定向,所以,直接给根接口一个响应

先来个main.html

templates/main.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Main</title>
</head>
<body style="background-color: cadetblue;"><h1 style="color: black">this is my first django app today</h1>
</body>
</html>

接着,在mysite/urls.py中设置,加上这句,注意,关键点还是正则
url(r"^$", views.main)

最后完成views,字符串效果是用来给用户看的视图,那么,这个html也应该是views:

cmdb/views.py

renders的参数:

render(request, template_name, context=None, content_type=None, status=None, using=None)

- request         请求: 附带所有请求信息
- template_name   模板: templates中定义的文件名
- context         内容: 呈现的内容,默认dict类型
- content_type    内容类型: 如果非dict,就填这一项
- status          状态: http响应吗,默认200(success)
- using           模板引擎
from django.shortcuts import render
from django.shortcuts import HttpResponse# Create your views here.def index(request):  # request 封装了用户请求的所有内容return HttpResponse("my first django today")def main(request):return render(request, "main.html")

那么,现在reset项目后,直接进入根接口,应该是这个样子的

你以为这就完了,只是一个html而已,最重要的js没出来也就罢了,连css也没有

使用静态文件

项目下创建static文件夹,用来做什么的,在setting.py模块的最下面已经给出提示了

就是装这些东西的,可以创建几个目录:css,js,imgs
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/这个是引用指针,可以理解为要在html中引用的相对路径
非具体目录,可以改
STATIC_URL = '/static/'这个是我们要创建的全局变量名,值是一个元组
对应刚创建的static文件夹
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),
)

接下来就可以引用了,比如说引用个jquery

先做个登录页login.html,登录成功后进入main.html

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title>Login</title><meta name="description" content=""><meta name="keywords" content=""><link href="" rel="stylesheet">
</head>
<body>
<div style="text-align: center;"><form action="/index/" method="post">用户名:<label><input type="text" name="username"/></label><br>密 码:<label><input type="password" name="password"></label><br><input type="submit" name="提交"></form>
</div>
</body>
</html>

接下来修改views.py,增加一个login函数,然后按照之前的方法注册到urls路由中

def login(request):if request.method == "POST":username = request.POST.get("username", None)password = request.POST.get("password", None)print("username={}, password={}".format(username, password))return render(request, "login.html", )

然后现在重启项目即可按照设置的路由访问

动态响应

为了方便,稍微改一下命名,先从路由开始
- 默认改成welcome
- index改成main,对应views中的main函数

urls

urlpatterns = [url(r'^admin/', admin.site.urls),  # 后台管理页面url(r"^main/", views.main),  # app路由 url(regex, view, kwargs=None, name=None)url(r"^$", views.welcome),url(r"^login/", views.login),
]

接着改一下对应的views,并加入动态响应

from django.shortcuts import render
from django.shortcuts import HttpResponse# Create your views here.# 创建用户信息列表,造两条数据
user_list = [{"user": "Jack", "pwd": "123"},{"user": "Mark", "pwd": "456"},]def welcome(request):  # request 封装了用户请求的所有内容return HttpResponse("my first django today")def main(request):return render(request, "main.html", )def login(request):if request.method == "POST":username = request.POST.get("username", None)password = request.POST.get("password", None)# 输入的数据加到列表中temp = {"user": username, "pwd": password}user_list.append(temp)return render(request, "login.html", {"data": user_list})

最后,需要在login.html中改一下显示效果

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title>Login</title>
</head>
<body>
<div style="text-align: center;"><form action="/login/" method="post">{% csrf_token %}  <!-- 跨域请求 -->用户名:<label><input type="text" name="username"/></label><br>密 码:<label><input type="password" name="password"></label><br><input type="submit" name="提交"></form>
</div>这段是新加入的,用来动态显示数据
<table border="1"><thead><th>用户名</th><th>密码</th></thead><tbody>{% for line in data %}<tr><td>{{ line.user }}</td><td>{{ line.pwd }}</td></tr>{% endfor %}</tbody>
</table></body>
</html>

重启server即可

下一篇
Django项目详解3——数据库

Django项目详解2——动态响应的web应用相关推荐

  1. Django 2.0 学习(20):Django 中间件详解

    Django 中间件详解 Django中间件 在Django中,中间件(middleware)其实就是一个类,在请求到来和结束后,Django会根据自己的规则在合适的时机执行中间件中相应的方法. 1. ...

  2. Gartner:2018年十大安全项目详解

    Gartner 2018年十大安全项目详解 Last Modified By Bennyye @ 2018-11-20 1     概述 2018年6月份,一年一度的Gartner安全与风险管理峰会上 ...

  3. openstack ice自定义调度算法项目详解(horizon、novaclient、api、scheduler、db、自定义数据库)

    原文转自:openstack ice自定义调度算法项目详解(horizon.novaclient.api.scheduler.db.自定义数据库) 第一部分:页面层即horizon与novaclien ...

  4. Python实战项目:高血压项目详解(下)

    Python实战项目 高血压项目详解(下) 四.爬虫 数据来源      ⇒   有关高血压文章.文献.论文--外国网站  爬取翻译      ⇒   爬取文章(高血压--Hypertension)+ ...

  5. Python实战案例:高血压项目详解(上)

    Python实战项目 高血压项目详解(上) 涉及内容:爬虫&开发&数学分析&数据挖掘 a.前端界面的技术--> Juqery Mobile (JQM),俗称"机 ...

  6. Gartner2019年十大安全项目详解

    (文章来源https://www.sec-un.org/gartner2019年十大安全项目详解/ ) 1. 概述 2019年2月11日,Gartner一改过去在年度安全与风险管理峰会上发表10大安全 ...

  7. Django URLS 详解

    Django URLS 详解 一.Path() 参数详解 path(route, view, kwargs=None, name=None) path中有4个参数,其中两个参数为必填,两个参数为非必填 ...

  8. Twain的学习记录和基于Qt的相关开源项目详解

    Twain学习记录和基于Qt的开源项目详解 twpp-qml 适用于 C++11 及更高版本的便携式.仅标头 TWAIN 框架. 原项目作者使用Qtwidget基于Twain静态传输一张图片 我基于h ...

  9. Blogs个人博客项目详解(Servlet实现)

    相关链接 项目源码 项目公网地址(出现bug请联系博主) 项目测试点设计(内含功能测试) Blogs个人博客项目详解 项目概述 功能 核心功能分为5个板块,用户注册功能,用户登录功能,文章列表展示功能 ...

  10. vue动态设置文字布局方式_详解Vue动态添加模板的几种方法

    动态添加模板需要收集原始数据的页面,这个时候我们需要很多原始数据收集模板,下面给大家详解Vue 动态添加模板的几种方法,希望对你学习这方面知识有所帮助. 通常我们会在组件里的 template 属性定 ...

最新文章

  1. lt view gt android,RecyclerView的linearLayoutManager.findViewByPosition()问题
  2. 一起来踩踩 Spring 中这个循环依赖的坑!
  3. MySQL数据类型以及元数据的使用
  4. 元宇宙大潮来袭?业内首个虚拟形象实时互动融合 SDK 来了!
  5. 整车厂核心制造系统及数据流
  6. linux中的集线器、交换机、路由器及组网
  7. Java中的mapreduce没了_MapReduce的过程总结
  8. mysql多源复制 知乎_技术分享 | MySQL 多源复制场景分析
  9. zend studio怎么连接mysql?
  10. 事件处理介绍(简要学习笔记十七)
  11. WSL2 下的 Docker 配置,使用网易云镜像 + 更改 docker 文件系统(否则无法 apt update)
  12. 【面试题】同学的面经
  13. 匹配区县代码_北京各区县代码都是多少?
  14. Android JNI的调用
  15. 移动前端开发需要注意的20个要点
  16. 链接标签(anchor)和锚点定位
  17. html5 自动点击按钮,自动击键神器!一键实现自动点击功能!关键模拟应用
  18. Hadoop 3.2.1 【 YARN 】源码分析 : DefaultContainerExecutor 浅析
  19. 记录华为游戏SDK,ResourceLoaderUtil.getStringId() 空指针问题
  20. 软件项目文档规划的大道至简、小道至繁原则

热门文章

  1. 视频编码中的PAFF和MBAFF的区别 转自:http://blog.csdn.net/kerryhung/article/details/4433256
  2. PAL与NTSC制式的详解
  3. Python十大装B语法
  4. win10 教育版本变专业版本
  5. [转]用python来开发webgame服务端(4)
  6. Android报unable to instantiate application怎么解决
  7. 坐标求四面体体积_四面体体积公式
  8. 计算机网络培训心得PPT,ppt培训心得体会(精选3篇)
  9. Markdown基础语法详细版
  10. linux 无法安全移除u盘,无法安全移除U盘解决办法