热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Django的一些操作与视图函数

本文由编程笔记#小编为大家整理,主要介绍了Django的一些操作与视图函数相关的知识,希望对你有一定的参考价值。一.Django的安装
本文由编程笔记#小编为大家整理,主要介绍了Django的一些操作与视图函数相关的知识,希望对你有一定的参考价值。



一 . Django的安装


pip install django==1.14.6
# 后面的数字是django的版本

 


二 .  通过命令行(cmd)来创建Django项目



技术图片

1. 切换到保存项目的文件夹下 # cd 空格 文件夹名
2. django-admin startproject 项目名称 # 创建一个新项目
3. python manage.py runserver 127.0.0.1:8000 # 启动django项目, 后面的ip地址和端口
4. django-admin startapp app名字 # 创建App, 可以创建多个

技术图片

  添加完App后,需要在settings文件里面的INSTALLED_APPS后面加上一句话.

  技术图片

 

  如果有多个App 为了避免URL都写在一起看着太乱,需要把各个需要的urls.py文件写到自己的App文件下.

    此时在主urls.py文件里面写内容就要有一些变化了.



技术图片

from django.conf.urls import url,include
from django.contrib import admin
from App01 import views
urlpatterns = [
url(r‘^admin/‘, admin.site.urls,),
url(r‘^login/‘, views.login, name=‘login‘),
url(r‘^App01/‘, include(‘App01.urls‘)), # 凡是以App01开头的请求,都去App01.urls里面找.
]
# 但是此时的搜索路径需要以App01开头了, 比如原来搜索127.0.0.1:8000/login就能找到login页面,
   但是如果这个login的url在App01的文件里 就需要写成 127.0.0.1:8000/App01/login 这样才能找到login页面

技术图片

  URL的别名应用

  技术图片


# 上述操作是在html文件中进行的,a标签也是这样做的, 但是在视图(views)里面的渲染就不一样啦.

 

 

  技术图片


  


  namespace的用法

  技术图片

  crm里面url的写法

  技术图片

  app01里面url的写法

  技术图片

  crm视图函数

  技术图片

 


三 . 通过pycharm来创建django项目


打开pycharm-->File-->NewProject-->Django


 四 . 传参方式


# login后面用括号括起来的是是参数,而且必须用括号括起来,
在视图里面的函数必须用一个形参来接收

 

  技术图片


五 . CBV与FBV

  FBV(function base views)   在视图里面写函数就是FBV(常用的)

  CBV(class base views)    在视图里面写类, 同时urls.py里面也和FBV不一样(基本用不到)

    CBV 的本质也是FBV  先实例化,然后赋值self.request,然后执行里面的dispatch方法,dispatch方法通过反射可以拿到get或者post然后去执行函数


# path拿到的是不带参数的路径, get_full_path拿到的是带参数的路径
request.path 拿到的路径是/index/
request.get_full_path() 拿到的路径是 /index/?page=1

 



技术图片

# 写在视图里面的
class Myd(View):
def get(self,request,*args, **kwargs):
print(‘get方法执行了‘)
return render(request,‘cvpost.html‘,{‘name‘:self.name})
def post(self,request,n):
print(‘post方法被执行了‘)
return HttpResponse(‘post‘)

技术图片

 



技术图片

# urls.py
from django.conf.urls import url
from myapp.views import MyView #引入我们在views.py里面创建的类

urlpatterns = [
url(r‘^index/$‘, MyView.as_view()), # as_view()这个方法拿到的是view函数然后去u执行
]

技术图片

 


# 传参
url(r‘^cv/(d{2})/‘, views.Myd.as_view(),name=‘cv‘),


  CBV加装饰器

    我们在给类方法加装饰器的时候,他不同于函数直接写在上面就可以,我们要先将其转化为方法装饰器.

    Django中提供了method_decorator装饰器用于函数装饰器转化为方法装饰器



技术图片

from django.views import View
from django.utils.decorators import method_decorator
class AddClass(View):
@method_decorator(wrapper) #这个wrapper就是定义的装饰器
def get(self, request):
return render(request, "add_class.html")
def post(self, request):
class_name = request.POST.get("class_name")
models.Classes.objects.create(name=class_name)
return redirect("/class_list/")

技术图片


  给CBV加装饰器的方法有三种



技术图片

# 第一种方法
class AddClass(View):
@method_decorator(wrapper)
def get(self, request):
return render(request, "add_class.html")
# 直接写在方法上面

技术图片

 



技术图片

# 第二种方法,写在类上面,但是需要指定给谁加 name=谁
@method_decorator(wrapper, name=‘get‘)
class AddClass(View):
def get(self, request):
return render(request, "add_class.html")

技术图片

 



技术图片

# 第三种方法, dispatch方法
from django.utils.decorators import method_decorator
@method_decorator(wrapper)
def dispatch(self, request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs)
# 自己定义一个dispatch方法,这个方法是无论get还是post方法都被加上装饰器

技术图片

 


六 . 浏览器的八种请求方式

http_method_names = [‘get‘, ‘post‘, ‘put‘, ‘patch‘, ‘delete‘, ‘head‘, ‘options‘, ‘trace‘]

 


七 . request后面的属性与方法

request.POST/GET/method/COOKIES/session/FILES/path/get_full_path/META/body


推荐阅读
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
author-avatar
谢撒旦法_774
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有