Django 1.5
原创
©著作权归作者所有:来自51CTO博客作者wx57ac012361806的原创作品,请联系作者获取转载授权,否则将追究法律责任
这几天看了Django,现在的项目结构如上,是完全按照官方教程去做的。
今早上刷到一个Django的中文教程,说什么用版本低的Django做演示,听了一点
我就退了,我感觉还是用官方的教程去做最恰当。
其中diangoProject1是我用Pycharm创建Django项目时自带出来的目录包,
而polls是按照教程建出来的一个app目录包。
在有次面试时对方团队是用的Ruby on rails,当时看了一两天的大概也跟着
教程做了一个前后端结构。
但实际对比下,在Ruby on rails中也有对应生成ORM相关数据的操作。
而Django可以根据你设计的数据模型,直接创建相关数据库表。
这也是看着比springboot要便捷的地方。(至少便捷是早上教程视频里说得对的)
而同样的,现在教程是前后端合并去写的,
而前端html页面中的标签语法也是与其它的类似(Vue/thymeleaf)
对比springboot,在Django的views相当于controller,
from django.shortcuts import render
from django.http import HttpResponse, Http404
from django.shortcuts import get_object_or_404, render
from django.template import loader
from polls.models import Question
# Create your views here.
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
context = {'latest_question_list': latest_question_list}
return render(request,'polls/index.html',context)
def detail(request,question_id):
question = get_object_or_404(Question,pk=question_id)
return render(request,'polls/detail.html',{'question':question})
def results(request,question_id):
response = "You're looking at the results of question %s."
return HttpResponse(response % question_id)
def vote(request,question_id):
return HttpResponse("You're voting on question %s." % question_id)
可以看到这些views“接口”有接口名称,入参request+其它参数,返回response。
而对于urls来说,这层相当于是路由层:
from django.urls import path
from . import views
app_name='polls'
urlpatterns = [
path('',views.index,name='index'),
path('<int:question_id>/',views.detail,name='detail'),
path('<int:question_id>/results/',views.results,name='results'),
path('<int:question_id>/vote/',views.vote,name='vote'),
]
比较方便的是,用相关命令即可实现对后端用户的管控:
也可以在展示前端数据列表时,直接通过admin操作进行管理。
作者:我北漂沪漂的这几年