from django.shortcuts import render
from django.http import HttpResponse
from asgiref.sync import async_to_sync,sync_to_async
from django.template import Template, RequestContext
import inspect
from django.views.decorators.csrf import csrf_exempt
from django.views.generic import ListView, CreateView # new
from .models import Post,PostForm
import wsps.gmod as gmod
# from wsps.tasks_loop import *
# wsps.
# import tasks_loop
import wsps.tasks_loop
glob_cl = wsps.tasks_loop.glob_cl
# glob_cl.has_cl
# glob_cl.acl
# Create your views here.
p=print
from django.middleware.csrf import get_token
def your_view(request):
csrf_token = get_token(request)
csrf_token = get_token(request)
csrf_token_html = ''.format(csrf_token)
def index(request):
return HttpResponse("Hello World")
@csrf_exempt
def fn_v(request,*a,**kw):
# glob_cl.acl
# if
p("fn_v",request)
# for en in dir(request):
# p(en)
pi = glob_cl.post_info(request,*a,**kw)
if (pi and pi["ret"]):
return pi["ret"]
# return HttpResponse("fn_v?")
if (glob_cl.has_cl):
p("async_to_sync sig:",inspect.signature(async_to_sync))
p("group_send sig:",inspect.signature(glob_cl.acl.group_send))
async_to_sync(glob_cl.acl.group_send)("av2",{"type":"jsto_send","hi":"test"})
return HttpResponse("fn_v has_cl")
return HttpResponse("fn_v")
return
def fn_v0(request,*a,**kw):
return HttpResponse("fn_v0")
class HomePageView(ListView):
model = Post
template_name = "home.html"
class CreatePostView(CreateView): # new
model = Post
form_class = PostForm
template_name = "post.html"
# success_url = reverse_lazy("home")
def fn_vpx(request,*a,**kw):
fnx = gmod.glob.get("fnx")
# if (gmod.glob.get("fnx")):
if (fnx):
fnx(request)
p("\n")
p("fn_vpx:",request,"\n",a,kw)
return HttpResponse("fn_vpx")
# p(request.body)
p("???,")
for en in dir(request):
# p(en)
if (en == "body"):
p("skip:",en)
continue
attr = getattr(request,en,"NO_ATTR")
p(en,type(attr))
p("????????????//")
p(request.method)
arbitrary_string_as_template = "abc 123 {% csrf_token %}"
def fn_v1(request,*a,**kw):
# return render()
template = Template(arbitrary_string_as_template)
context = RequestContext(request)
return HttpResponse(template.render(context))
return HttpResponse("fn_v1")
def fn_v2(request,*a,**kw):
csrf_token = get_token(request)
csrf_token_html = '...'.format(csrf_token)
return HttpResponse(csrf_token_html)
return render(request,"index.html")
# return render("index.html","index.html")
template = Template(arbitrary_string_as_template)
context = RequestContext(request)
return HttpResponse(template.render(context))
return render(request,template)
return HttpResponse("fn_v2")
r'''
fn_v = index
fn_v0 = index
fn_v1 = index
fn_v2 = index
# '''