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

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<year>[0-9]{4})/$‘, views.year_archive),
    url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$‘, views.month_archive),
    url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$‘, views.article_detail),
]
url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[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那里必须要对应起来,不然添加不了,:

原文地址:http://blog.51cto.com/jacksoner/2307465

时间: 2024-11-05 20:43:48

《二》django之url、视图、日志功能logging的相关文章

Oracle 物化视图日志

一.物化视图日志是什么 oracle 的物化视图的快速刷新要求必须建立物化视图日志,通过物化视图日志可以实现增量刷新功能. 官方文档给出的对物化视图日志的释义: A materialized view log is required on a master to perform a fast refresh on materialized views based on the master. When you create a materialized view log for a master

Django框架1——视图和URL配置

三个命令 1.创建一个django项目 在cmd中:django-admin.py startproject project_name D:\python\django_site>django-admin startproject first_site 2.创建应用 python manage.py startapp app_name D:\python\django_site\first_site>python manage.py startapp app001 3.运行django项目 p

【java】java自带的java.util.logging.Logger日志功能

偶然翻阅到一篇文章,注意到Java自带的Logger日志功能,特地来细细的看一看,记录一下. 1.Java自带的日志功能,默认的配置 ①Logger的默认配置,位置在JRE安装目录下lib中的logging.properties中 ②logging.properties日志文件内容如下: ############################################################ # Default Logging Configuration File # # You

二、Python Django的URL设置

Python Django的URL设置 一.url使用方式 1.正则表达方式: url(r'^blog/index/$','blog.views.index'), 2.导入的方式: from blog.views import index ..... url(r'^blog/index/$',index), ..... 3. urlpatterns = patterns('blog.views', url(r'^blog/index/$','index'), ) 二.URL参数传递给index

Django 1.8_视图和URL配置

前情提要 学习了如何创建django项目,运行开发django服务器,并了解了mvc模式. 内容 VIEW URL 正则表达式 错误解析与寻求帮助 hello world.html dynamic_date.html dynamic_date_offset.html Django处理请求的过程 Helloword 创建一网页,打开即显示helloworld. 其中网页内容由视图生成,并配置URL. 在mysite/mysites下创建views.py并编辑 1 from django.http

01Spring_基本jia包的导入andSpring的整体架构and怎么加入日志功能

1.什么是Spring : v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style De

13.django入门01(django入门初探视图,模板,路由)

一.django的基本使用流程. pip install django #安装django 创建一个project: django-admin startproject mysite ---mysite ---settings.py ---url.py ---wsgi.py ---- manage.py(启动文件) 给项目起名字: python mannage.py startapp  app01 django-admin.py 是Django的一个用于管理任务的命令行工具,manage.py是

Django开发:(1)django基础 &amp; url控制器

HTTP请求协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议.http协议是基于TCP/IP协议之上的应用层协议 请求协议: 请求方式: get与post请求 1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456. POST方法是把提交的数据放在HTT

Django 通用类视图

引文 所有的类视图都继承django.views.generic.base.View类. 在URLconf中简单的使用通用视图 如果只是简单的做一些属性修改,可以使用as_view()方法,如下所示: from django.urls import path from django.views.generic import TemplateView urlpatterns = [ path('about/', TemplateView.as_view(template_name="about.h