python框架优化方法,Python Web开发框架:Django

Django,Tornado和Flask是Python里比较著名的三个Web开发框架,本文我主要介绍Django里最重要的一些基本概念。

总览

下图是从用户输入网址到服务器返回结果的Django流程图。Django里几个重要的概念都涉及到了,接下来我就逐个说说。

3157d3a4d501ef30cff1641374a9948a.png

URLconf

URLconf其实就是起地址定向(或叫配对)的作用,浏览器中输入的不同地址定向到不同的处理逻辑上。

例如,下面定义了网址根目录下的定向方法:

urlpatterns = [

url(r'^polls/', include('polls.urls', namespace='polls')),

url(r'^admin/', include(admin.site.urls)),

]

而下面的代码又定义了polls.urls里的二级目录定向方法:

urlpatterns = [

url(r'^$', views.IndexView.as_view(), name='index'),

url(r'^login/$', views.login, name='login'), ##

url(r'^register/$', views.register, name='register'),

url(r'^logout/$', views.logout, name='logout'),

]

所以,像127.0.0.1:8000/polls/login/就会由指定的视图函数views.login来处理。

模型(Model)

一个模型对应着一个数据库中的表,所以也可以说模型就是数据。

例如,下面定义了一个Django模型:

class Question(models.Model):

question_text = models.CharField(max_length=200)

pub_date = models.DateTimeField('date published')

它对应的数据表如下:

CREATE TABLE "polls_question" (

"id" serial NOT NULL PRIMARY KEY,

"question_text" varchar(200) NOT NULL,

"pub_date" timestamp with time zone NOT NULL

);

模板(Template)

模板可以理解为HTML模板。模板接收一些输入数据,然后最终产生返回给用户的HTML页面。

例如,下面是一个简单的登录模板,里面用到了Django的模板语言:

af183773a13ee2c3ec9e9e1577344f5c.png

模板可以像OOP里的类一样,可重用。具体可参见“extends”说明。

视图(View)

真正处理浏览器请求的是视图。视图接收请求数据,调用其他模块产生结果数据,然后再把结果数据传给模板,由模板最终产生返回给用户的HTML页面。

例如,下面是一个简单的注册视图:

def register(request):

if request.method == 'POST':

form = UserCreationForm(request.POST)

if form.is_valid():

new_user = form.save()

return HttpResponseRedirect("/polls")

else:

form = UserCreationForm()

return render(request, "polls/register.html", {'form': form})

表单(Form)

表单其实不算个重要组件,它只是为了使用方便才被创造出来的。例如我们上面视图里就用到了一个表单UserCreationForm,这个表单帮助创建出简单的注册表单。下面是效果图:

8763215333d38de18c23b94eee7193c3.png

References

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值