网页程序的逻辑
request进来->从服务器获取数据->处理数据->把网页呈现出来
url
设置相当于客户端向服务器发出request请求的入口
, 并用来指明要调用的程序逻辑views
用来处理程序逻辑, 然后呈现到template(一般为GET
方法, POST
方法略有不同)template
一般为html+CSS的形式, 主要是呈现给用户的表现形式简单Django Views和URL
Django中views里面的代码就是一个一个函数逻辑, 处理客户端(浏览器)发送的HTTPRequest, 然后返回HTTPResponse,
那么那么开始在my_blog/article/views.py中编写简单的逻辑
#现在你的views.py应该是这样from django.shortcuts import renderfrom django.http import HttpResponse# Create your views here.def home(request): return HttpResponse("Hello World, Django")那么如何使这个逻辑在http请求进入时, 被调用呢, 这里需要在
my_blog/my_blog/urls.py
中进行url设置from django.conf.urls import patterns, include, urlfrom django.contrib import adminurlpatterns = patterns('', # Examples: # url(r'^$', 'my_blog.views.home', name='home'), # url(r'^blog/', include('blog.urls')),url(r'^admin/', include(admin.site.urls)), url(r'^$', 'article.views.home'), #由于目前只有一个app, 方便起见, 就不设置include了)
url()
函数有四个参数, 两个是必须的:regex和view, 两个可选的:kwargs和name
regex
是regular expression的简写,这是字符串中的模式匹配的一种语法, Django 将请求的URL从上至下依次匹配
列表中的正则表达式,直到匹配到一个为止。更多正则表达式的使用可以查看Python正则表达式
view
当 Django匹配了一个正则表达式就会调用指定的view逻辑, 上面代码中会调用article/views.py中的home函数kwargs
任意关键字参数可传一个字典至目标viewname
命名你的 URL, 使url在 Django 的其他地方使用, 特别是在模板中现在在浏览器中输入127.0.0.1:8000应该可以看到下面的界面
Django Views和URL更近一步
很多时候我们希望给view中的函数逻辑传入参数, 从而呈现我们想要的结果
现在我们这样做, 在my_blog/article/views.py加入如下代码:
def detail(request, my_args): return HttpResponse("You're looking at my_args %s." % my_args)在my_blog/my_blog/urls.py中设置对应的url,
urlpatterns = patterns('', # Examples: # url(r'^$', 'my_blog.views.home', name='home'), # url(r'^blog/', include('blog.urls')),url(r'^admin/', include(admin.site.urls)), url(r'^$', 'article.views.home'), url(r'^(?P<my_args>\d+)/$', 'article.views.detail', name='detail'),)
^(?P<my_args>\d+)/$
这个正则表达式的意思是将传入的一位或者多位数字作为参数传递到views中的detail作为参数, 其中?P<my_args>
定义名称用于标识匹配的内容一下url都能成功匹配这个正则表达数
http://127.0.0.1:8000/1000/http://127.0.0.1:8000/9/
尝试传参访问数据库
修改在my_blog/article/views.py代码:
from django.shortcuts import renderfrom django.http import HttpResponsefrom article.models import Article# Create your views here.def home(request): return HttpResponse("Hello World, Django")def detail(request, my_args): post = Article.objects.all()[int(my_args)] str = ("title = %s, category = %s, date_time = %s, content = %s" % (post.title, post.category, post.date_time, post.content)) return HttpResponse(str)这里最好在admin后台管理界面增加几个Article对象, 防止查询对象为空, 出现异常
现在可以访问http://127.0.0.1:8000/1/
显示如下数据表示数据库访问正确(这些数据都是自己添加的), 并且注意Article.objects.all()返回的是一个列表
小结:
如何编写views和设置url如何通过url向views传参如何通过参数来访问数据库资源网页程序的逻辑
request进来->从服务器获取数据->处理数据->把网页呈现出来
url
设置相当于客户端向服务器发出request请求的入口
, 并用来指明要调用的程序逻辑views
用来处理程序逻辑, 然后呈现到template(一般为GET
方法,POST
方法略有不同)template
一般为html+CSS的形式, 主要是呈现给用户的表现形式原文地址:Django搭建简易博客教程(六)-Views和URL, 感谢原作者分享。 正确的寒暄必须在短短一句话中明显地表露出你对他的关怀。相关文章:
你感兴趣的文章:
- 低压电器元件有哪些?
- 华为Mate 7尊爵版搭载的窄边框技术是什么?
- 空气开关和漏电开关怎么区分?有什么区别?
- Android 帧动画使用简介
- 安卓手机为什么连不上电脑
- 在linux系统中编译、实施java程序
标签云: