Django 1.5_html


这几天看了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'),
]

比较方便的是,用相关命令即可实现对后端用户的管控:

Django 1.5_spring_02


也可以在展示前端数据列表时,直接通过admin操作进行管理。

作者:我北漂沪漂的这几年