Django
一. 类视图(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
-
后端逻辑处理时不通过逻辑来判断请求方式是get还是post请求,在视图类中,定义了get方法就是写get请求的逻辑,定义类post方法时就是post请求逻辑
-
View大致的执行流程
self.as_view() ----->self.dispatch() ------> self.get/post
路由分发开始 获取具体的请求方面名,在通过反射具体的请求函数 视图函数
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/')
类视图的好处:
代码可读性好
类视图相对于函数有更高的复用性,一个类视图实现一块功能,如果其他地方需要某个类视图的某个特定的额逻辑,直接继承这个类视图就可以了
二. 其它问题
action 问题: https://blog.csdn.net/qq_34045989/article/details/88977104
上传图片: 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)>]>
django-taggit文档: https://django-taggit.readthedocs.io/en/latest/api.html
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
将markdown嵌入到django中的基本思路是:随便在一个页面中定义一个框书写markdown语法,然后写完后将markdown语法经过处理变成html语句传到页面中执行就可以,总体来说就是为模板渲染加入markdwon支持
django-markdown-deux:https://github.com/trentm/django-markdown-deux
ERRORS: ?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT settin
https://blog.csdn.net/Sun_White_Boy/article/details/80684620
urls.py里面写路由的格式
django form表单提交action的url怎么写?
在forms里面怎么定义textfield类型的数据,写成forms.CharField(widget=forms.Textarea)
class BlogForm(forms.Form):
title = forms.CharField(required = True)
content = forms.CharField(widget=forms.Textarea)