Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

views.py 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. from django.shortcuts import render
  2. from django.http import HttpResponse
  3. from asgiref.sync import async_to_sync,sync_to_async
  4. from django.template import Template, RequestContext
  5. import inspect
  6. from django.views.decorators.csrf import csrf_exempt
  7. from django.views.generic import ListView, CreateView # new
  8. from .models import Post,PostForm
  9. from django.core.files.base import ContentFile
  10. import wsps.gmod as gmod
  11. # from wsps.tasks_loop import *
  12. # wsps.
  13. # import tasks_loop
  14. import wsps.tasks_loop
  15. glob_cl = wsps.tasks_loop.glob_cl
  16. # glob_cl.has_cl
  17. # glob_cl.acl
  18. # Create your views here.
  19. p=print
  20. from django.middleware.csrf import get_token
  21. def your_view(request):
  22. csrf_token = get_token(request)
  23. csrf_token = get_token(request)
  24. csrf_token_html = '<input type="hidden" name="csrfmiddlewaretoken" value="{}" />'.format(csrf_token)
  25. def index(request):
  26. return HttpResponse("Hello World")
  27. @csrf_exempt
  28. def fn_v(request,*a,**kw):
  29. # glob_cl.acl
  30. # if
  31. p("fn_v",request)
  32. # for en in dir(request):
  33. # p(en)
  34. pi = glob_cl.post_info(request,*a,**kw)
  35. if (pi and pi["ret"]):
  36. return pi["ret"]
  37. # return HttpResponse("fn_v?")
  38. if (glob_cl.has_cl):
  39. p("async_to_sync sig:",inspect.signature(async_to_sync))
  40. p("group_send sig:",inspect.signature(glob_cl.acl.group_send))
  41. async_to_sync(glob_cl.acl.group_send)("av2",{"type":"jsto_send","hi":"test"})
  42. return HttpResponse("fn_v has_cl")
  43. return HttpResponse("fn_v")
  44. return
  45. def fn_v0(request,*a,**kw):
  46. return HttpResponse("fn_v0")
  47. class HomePageView(ListView):
  48. model = Post
  49. template_name = "home.html"
  50. class CreatePostView(CreateView): # new
  51. model = Post
  52. form_class = PostForm
  53. template_name = "post.html"
  54. # success_url = reverse_lazy("home")
  55. def fn_vpx(request,*a,**kw):
  56. fnx = gmod.glob.get("fnx")
  57. # if (gmod.glob.get("fnx")):
  58. if (fnx):
  59. fnx(request)
  60. p("\n")
  61. p("fn_vpx:",request,"\n",a,kw)
  62. return HttpResponse("fn_vpx")
  63. # p(request.body)
  64. p("???,")
  65. for en in dir(request):
  66. # p(en)
  67. if (en == "body"):
  68. p("skip:",en)
  69. continue
  70. attr = getattr(request,en,"NO_ATTR")
  71. p(en,type(attr))
  72. p("????????????//")
  73. p(request.method)
  74. arbitrary_string_as_template = "abc 123 {% csrf_token %}"
  75. def fn_v1(request,*a,**kw):
  76. # return render()
  77. template = Template(arbitrary_string_as_template)
  78. context = RequestContext(request)
  79. return HttpResponse(template.render(context))
  80. return HttpResponse("fn_v1")
  81. def fn_v2(request,*a,**kw):
  82. csrf_token = get_token(request)
  83. csrf_token_html = '...<input type="hidden" name="csrfmiddlewaretoken" value="{}" />'.format(csrf_token)
  84. return HttpResponse(csrf_token_html)
  85. return render(request,"index.html")
  86. # return render("index.html","index.html")
  87. template = Template(arbitrary_string_as_template)
  88. context = RequestContext(request)
  89. return HttpResponse(template.render(context))
  90. return render(request,template)
  91. return HttpResponse("fn_v2")
  92. r'''
  93. fn_v = index
  94. fn_v0 = index
  95. fn_v1 = index
  96. fn_v2 = index
  97. # '''