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

《二》django之url、视图、日志功能logging

django之url参考文档:https:yiyibooks.cnxxDjango_1.11.6topicshttpurls.html在setting中ROOT_URLCONF‘d
django之url

参考文档:https://yiyibooks.cn/xx/Django_1.11.6/topics/http/urls.html

在setting中ROOT_URLCOnF= ‘devops.urls‘ 配置

Django如何处理请求
技术分享图片

匹配url,都是从第一个往下匹配,若第一个可以匹配,就不用跳到第二个url规则

from django.conf.urls import url,include
from . import views

app_name = ‘dashboard‘
urlpatterns = [
    url(r‘^$‘, views.index,name=‘index‘),
    url(r‘^login/$‘, views.loginView,name=‘login‘),
        url(r‘^login/‘, views.loginView1,name=‘login1‘),
]

每个正则表达式前面的‘r‘ 是可选的但是建议加上。 它告诉Python 这个字符串是“原始的” ,表示:字符串中任何字符都不应该转义。

url映射一般是一条正则表达式,“^” 字符串的开始,“$“ 字符串的结束

例子1:访问“http://127.0.0.1:8000/dashboard/login/123” 匹配的是 url(r‘^login/‘, views.loginView1,name=‘login1‘) 这条

            :  访问“http://127.0.0.1:8000/dashboard/login”  匹配的是  url(r‘^login/$‘, views.loginView,name=‘login‘) 这条

例子2:

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r‘^articles/2003/$‘, views.special_case_2003),
    url(r‘^articles/([0-9]{4})/$‘, views.year_archive),
    url(r‘^articles/([0-9]{4})/([0-9]{2})/$‘, views.month_archive),
    url(r‘^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$‘, views.article_detail),
]

匹配第一个:
访问:“http://127.0.0.1:8000/dashboard/articles/2003/”

匹配第二个:
访问:“http://127.0.0.1:8000/dashboard/articles/2013/”

匹配第三个:
访问:“http://127.0.0.1:8000/dashboard/articles/2013/12/”

匹配第四个:
访问:“http://127.0.0.1:8000/dashboard/articles/2014/12/12312123123213/”

def article_detail(request,*args,**kwargs):
    print("args:",args)
    print("kwargs:",kwargs)
    return HttpResponse(‘12‘)

结果:
args: (‘2014‘, ‘12‘, ‘12312123123213‘)
kwargs: {}

关键字参数

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r‘^articles/2003/$‘, views.special_case_2003),
    url(r‘^articles/(?P[0-9]{4})/$‘, views.year_archive),
    url(r‘^articles/(?P[0-9]{4})/(?P[0-9]{2})/$‘, views.month_archive),
    url(r‘^articles/(?P[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/$‘, views.article_detail),
]
url(r‘^articles/(?P[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/$‘, views.article_detail),

def article_detail(request,*args,**kwargs):
    return HttpResponse(json.dumps(kwargs))

结果:
技术分享图片

技术分享图片

include访问:

 urlpatterns = [
      url(r"^user/", include([
          url(r‘^list/$‘, view.userlist, name="user_list"),
          url(r‘^info/$‘, view.userinfo, name="userer_inf),
          url(r‘^modify/‘, include([
             url(r‘status/$‘,view.modifystatus, name="user_modify_status"),
          ]))
      ]))
]
访问:‘http://127.0.0.1:8000/user/list/’
                    ‘http://127.0.0.1:8000/user/info/’
                    ‘http://127.0.0.1:8000/user/modify/’
                                ‘http://127.0.0.1:8000/user/modify/status/’

类视图

以函数的形式进行定义的视图就是函数视图
以类的的形式进行定义的视图就是类视图

例子:展示页面的增删改查功能

用函数视图实现:
技术分享图片

结果:
技术分享图片

用类视图实现:
.as_view() 为类视图提供一个函数入口

url(r‘^login/$‘, views.LoginUser.as_view(),name=‘login‘),

from django.views import View
技术分享图片

分页练习:
1、from django.core.paginator import Paginator
2、

class UserViewV4(View):
    def get(self,request,*args,**kwargs):
        queryset = User.objects.all()
        paginator = Paginator(queryset,20)  #20条数据为一页,实例化分页对象
        try:
            page = int(request.GET.get(‘page‘))
        except:
            page = 1
        if page <1:
            page = 1
        page = paginator.page(page)   #取对象的第几分页对象;page.object_list:为第几分页的内容
        data = [{‘id‘:user.id,‘email‘:user.email,‘username‘:user.username} for user in page.object_list]
        return JsonResponse(data,safe=False)

例子2:
通过给定的接口创建普通用户密码

class UserViewV5(View):
    def post(self,request,*args,**kwargs):
        data = request.POST.dict()#接收所有的dict
        print(data) 
        try:
            user = User.objects.create_user(**data)
        except IntegrityError:
            return JsonResponse({‘error‘:‘用户已存在‘})
        return JsonResponse({‘id‘:user.id,‘email‘:user.email,‘username‘:user.username})

技术分享图片

create_user接收的参数,data那里必须要对应起来,不然添加不了,:
技术分享图片

《二》django之url、视图、日志功能logging


推荐阅读
  • vue使用
    关键词: ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 本文介绍了关于汉庭酒店价格的知识点,提供了一篇由congdi7904投稿的技术文章,希望能帮到读者解决相关技术问题。同时还提供了汉庭酒店的官方链接和转载信息。请注意,引用汉庭酒店需遵循CC 4.0 BY-SA版权协议。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • jmeter实践:从csv中获取带引号的数据详情的技巧和运行全部数据的方法
    本文分享了jmeter实践中从csv中获取带引号的数据的解决办法,包括设置CSV Data Set Config和运行脚本获取数据的方法。另外还介绍了循环运行csv中全部数据的解决方法,避免每次修改csv用例都需要修改脚本的麻烦。通过了解和掌握工具的细节点,可以更好地解决问题和提高技术水平。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
author-avatar
李树兴2502917897
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有