Alguns pontos técnicos de desenvolvimento do Django (visão de classe, django-taggit, markdownx)

Django

1. Class View (CBV):

https://www.cnblogs.com/chichung/p/9886655.html

https://blog.csdn.net/AI_GG/article/details/103696360

https://www.cnblogs.com/knighterrant/p/10503645.html

https://blog.csdn.net/xujin0/article/details/84038778

https://blog.csdn.net/xujin0/article/details/84038778

https://www.runoob.com/django/django-form-component.html

  1. O processamento da lógica de back-end não usa lógica para determinar se o método de solicitação é get ou post request. Na classe view, a definição do método get é a lógica de escrever a solicitação get e a definição da classe método post é a lógica de solicitação posterior.

  2. Ver o fluxo de execução geral

    self.as_view () -----> self.dispatch () ------> self.get / post

    A distribuição de roteamento começa a obter o nome do aspecto da solicitação específica e reflete a função de visualização da função de solicitação específica

    class View:
    	http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
    
    	def as_view(cls, **initkwargs):
    
    		def view(request, *args, **kwargs):
    
    			return self.dispatch(request, *args, **kwargs)
    		return view
    
    	def dispatch(self, request, *args, **kwargs):
    		if request.method.lower() in self.http_method_names:
    			#用反射获取函数
    			handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
    		else:
    			handler = self.http_method_not_allowed
    
    		return handler(request, *args, **kwargs)
    
    
    from django.view import View
    
    class LoginView(View):
    	def get(self, request, *args, **kwargs):
    		return render(request, 'login.html')
    
    
    	def post(self, request, *args, **kwargs):
    		return redirect('/index/')
    

    Benefícios da visão da classe:

    Boa legibilidade de código

    As visualizações de classe têm maior capacidade de reutilização do que as funções. Uma visualização de classe implementa uma função. Se uma lógica específica de uma visualização de classe for necessária em outro lugar, é o suficiente para herdar diretamente esta visualização de classe.

2. Outros problemas

problema de ação: https://blog.csdn.net/qq_34045989/article/details/88977104

Carregar imagem: https://blog.csdn.net/meylovezn/article/details/47124923

MEDIA_ROOT: https://segmentfault.com/a/1190000021960355

https://www.cnblogs.com/icat-510/p/9034727.html


django-taggit: https://cloud.tencent.com/developer/article/1635695

In [4]: from articles.models import TestImage

In [5]: ti  =TestImage.objects.create(name='yyt', img='img/test.png')

In [6]: ti.tags.add('new','sad','angry')

In [7]: ti.tags.all()
Out[7]: <QuerySet [<Tag: angry>, <Tag: new>, <Tag: sad>]>

In [8]: TestImage.objects.filter(tags__name__in=['new'])
Out[8]: <QuerySet [<TestImage: TestImage object (13)>]>

documentação do django-taggit: https://django-taggit.readthedocs.io/en/latest/api.html


Implementação de django-markdown: https://blog.csdn.net/Empire_03/article/details/87112250

使用 markdown: https://blog.csdn.net/qq_34405401/article/details/102528305

http://www.zhidaow.com/post/djaog-1-6-markdown

pip install markdown

[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo anti-hotlinking. Recomenda-se salvar a imagem e carregá-la diretamente (img-5XNet2oz-1599186913338) (C: \ Users \ 93623 \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200813094512583.png)]

A ideia básica de embutir markdown no django é: basta definir uma caixa em uma página para escrever a gramática markdown e, depois de escrever, a gramática markdown pode ser processada em instruções html e executada na página. De um modo geral, é um template. Adicionar suporte markdwon para renderização

django-markdown-deux: https://github.com/trentm/django-markdown-deux

ERRORS:?: (Staticfiles.E002) A configuração STATICFILES_DIRS não deve conter a configuração STATIC_ROOT

[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo anti-hotlinking. Recomenda-se salvar a imagem e carregá-la diretamente (img-fn6dZiwj-1599186913341) (C: \ Users \ 93623 \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200817135301311.png)]

https://blog.csdn.net/Sun_White_Boy/article/details/80684620

[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo anti-hotlinking. Recomenda-se salvar a imagem e carregá-la diretamente (img-TXRv2mxi-1599186913342) (C: \ Users \ 93623 \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200817135515055.png)]


Escreva o formato de roteamento em urls.py
Insira a descrição da imagem aqui


Como escrever a URL da ação de envio do formulário django?

[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo anti-hotlinking. Recomenda-se salvar a imagem e carregá-la diretamente (img-8M5SgdUu-1599186913345) (C: \ Users \ 93623 \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200817144636789.png)]


Como definir dados de tipo de campo de texto em formulários, escritos comoforms.CharField(widget=forms.Textarea)


class BlogForm(forms.Form):
		title  = forms.CharField(required = True) 
		content = forms.CharField(widget=forms.Textarea) 

Acho que você gosta

Origin blog.csdn.net/weixin_46129834/article/details/108399557
Recomendado
Clasificación