初识Django---视图
发布日期:2022-03-13 05:36:08 浏览次数:11 分类:技术文章

本文共 3255 字,大约阅读时间需要 10 分钟。

 

MTV模型

一、Django的MTV分别代表:

        Model(模型):负责业务对象与数据库的对象

      Template(模板):负责如何把页面展示给用户

     View(视图):   负责业务逻辑,并在适当的时侯调用Model和Template

此外,Django还有一个urls分发器,它的作用是将一个个URL页面请求分发给不同的View处理,view在调用相应的Model与Template

Django基本命令

二、Django基本命令

1、下载Django

           pip3 install django

2. 创建一个Django project

 

创建Django项目: django-admin.py startproject  项目名     mysite:项目名称        manage.py: 启动文件,控制项目命令        mysite   : 全局文件 3.创建应用 python manage.py startapp 应用名 4.启动 Django:python manage.py runserver ip port  5.url配置(urls.py)

     功能:建立起url与视图函数的映射关系。

     url:http://127.0.0.1:8080/blog/articles/2003/05?a=1&b=2
    url(正则表达式(规则),视图函数) 匹配字符串:用户输入的url对应的路径:“/blog/articles/2003/05”
   注意点:
  (1) 出现覆盖现象的情况,匹配第一个url
  (2) 无名分组 url(r'^articles/(\d{4})/(\d{2})$', views.year_month), # year(requset,1990,12) 按位置传参数
  (3) 有名分组 url(r'^articles/(?P<year>\d{4})/(?P<month>\d{2})$', views.year_month),                #  year(requset,year=1990,month=12) 按位置传参数                   
  (4) url(r'^blog/', include('blog.urls'))

6.视图函数:

一定包含两个对象:        requset---->请求信息       Httpresponse---->响应字符串 7.
request.GET: GET请求的数据 {}
request.POST:POST请求的数据   {}    request.method:请求方式:GET 或 POST                   请求某个键下多个值时:                       request.POST.getlist("hobby")    request.path : 请求路径       请求url:http://127.0.0.1:8000/index.html/23?a=1       request.path:/index.html/23    request.get_full_path()       请求url:http://127.0.0.1:8000/index.html/23?a=1       request.get_full_path():/index.html/23?a=1 8.对比render与redirect         (1).render:  只是返回页面内容,但是未发送第二次请求

render(request, template_name[, context])

 

结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象。

 
参数:     request: 用于生成响应的请求对象。     template_name:要使用的模板的完整名称,可选的参数     context:添加到模板上下文的一个字典。默认是一个空字典。如果字典中的某个值是可调用的,视图将在渲染模板之前调用它。     content_type:生成的文档要使用的MIME类型。默认为DEFAULT_CONTENT_TYPE 设置的值。     status:响应的状态码。默认为200。
(2).  redirect:发送了第二次请求,url更新

参数可以是:

  • 一个模型:将调用模型的get_absolute_url() 函数
  • 一个视图,可以带有参数:将使用urlresolvers.reverse 来反向解析名称
  • 一个绝对的或相对的URL,将原封不动的作为重定向的位置。

默认返回一个临时的重定向;传递permanent=True 可以返回一个永久的重定向。

示例:

你可以用多种方式使用redirect() 函数。

9.HttpResquest属性
path:       请求页面的全路径,不包括域名method:     请求中使用的HTTP方法的字符串表示。全大写表示。例如               if  req.method=="GET":                         do_something()               elif req.method=="POST":                         do_something_else()GET:         包含所有HTTP GET参数的类字典对象POST:       包含所有HTTP POST参数的类字典对象COOKIES:     包含所有cookies的标准Python字典对象;keys和values都是字符串。FILES:      包含所有上传文件的类字典对象;FILES中的每一个Key都是标签中             name属性的值,FILES中的每一个value同时也是一个标准的python字典对象,包含下面三个Keys:             filename:      上传文件名,用字符串表示             content_type:   上传文件的Content Type             content:       上传文件的原始内容user:       是一个django.contrib.auth.models.User对象,代表当前登陆的用户。如果访问用户当前             没有登陆,user将被初始化为django.contrib.auth.models.AnonymousUser的实例。你             可以通过user的is_authenticated()方法来辨别用户是否登陆:             if req.user.is_authenticated();只有激活Django中的AuthenticationMiddleware             时该属性才可用session:    唯一可读写的属性,代表当前会话的字典对象;自己有激活Django中的session支持时该属性才可用。'''
 

方法:

    get_full_path()

注意:键值对的值是多个的时候,比如checkbox类型的input标签,select标签,需要用:

request.POST.getlist("hobby") 补充:

   视图函数:

      一定包含两个对象:
           request ------> 请求信息
         HttpResponse------> 响应字符串

   重点: request里包含哪些数据

         request.GET: GET请求的数据()

       request.POST: POST请求的数据()
      request.method:请求方式:GET或POST

 
 
 

     

 

转载于:https://www.cnblogs.com/mengqingjian/p/7717892.html

转载地址:https://blog.csdn.net/weixin_30323961/article/details/98201590 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:nginx解决跨域
下一篇:基于C#的数据库文件管理助手2018-01-23

发表评论

最新留言

很好
[***.229.124.182]2024年03月09日 02时27分54秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

估计的商是什么意思_商是什么意思,商的繁体字,商有几笔,商字几画 2019-04-21
java泛型改进_编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议93~97)... 2019-04-21
java读文件几种方式_JAVA读取文件的几种方式 2019-04-21
java arraylist常用方法_C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)... 2019-04-21
如何实现java文档注释_JavaDoc注释与帮助说明文档 2019-04-21
Java一亿电话号码去重_20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap... 2019-04-21
java判断ipv6地址类型_IPv6地址类型与格式 2019-04-21
linux java jdk_linux安装JDK 2019-04-21
java的showcase_java – 如何在Eclipse中导入ShowcaseView? 2019-04-21
JAVA中math的作用_Java中Random 和 Math 的概述及使用(二十六) 2019-04-21
mysql排序rank_MySQL_实现组内排序-Oracle中的rank()函数的功能 2019-04-21
vim自定义html,html - 寻找一种使用VIM在HTML中直接生成漂亮代码段的方法 - 堆栈内存溢出... 2019-04-21
python时间序列因果检验_用python做时间序列预测八:Granger causality test(格兰杰因果检验)... 2019-04-21
python numpy 函数详解_python使用numpy中的size()函数实例用法详解 2019-04-21
java spring上传文件_Java Spring文件上传,Java文件上传,Java通用文件上传 2019-04-21
linux 模拟键盘输入到进程,Linux 下模拟键盘输入 2019-04-21
linux服务器上已安装R 用户下载R包,R语言安装R package的2种方法 2019-04-21
linux 7 磁盘空间太小,Linux下磁盘保留空间的调整,解决df看到的空间和实际磁盘大小不一致的问题... 2019-04-21
linux下mysql 备份方法,Linux下mysql数据库备份方法小结 2019-04-21
bootstrap 页面垂直居中_iframe中如何让layer提示框显示在垂直居中的位置 2019-04-21