Views和URL

四、Views和URL

1.网页程序的逻辑

request进来->从服务器获取数据->处理数据->把网页呈现出来

url设置相当于客户端向服务器发出request请求的入口, 并用来指明要调用的程序逻辑

views用来处理程序逻辑, 然后呈现到template(一般为GET方法, POST方法略有不同)

template一般为html+CSS的形式, 主要是呈现给用户的表现形式

拓展阅读:HTTP之URL

2.简单Django Views和URL

Django中views里面的代码就是一个一个函数逻辑, 处理客户端(浏览器)发送的HTTPRequest, 然后返回HTTPResponse,

那么开始在my_blog/article/views.py中编写简单的逻辑


Views和URL_第1张图片

那么如何使这个逻辑在http请求进入时, 被调用呢, 这里需要在my_blog/my_blog/urls.py中进行url设置


Views和URL_第2张图片

Django使用叫做‘URLconfs’的配置来为URL匹配视图。一个URLconf负责使用正则表达式将URL模式匹配到视图

url()函数有四个参数, 两个是必须的:regex和view, 两个可选的:kwargs和name

regex是regular expression的简写,这是字符串中的模式匹配的一种语法, Django 将请求的URL从上至下依次匹配列表中的正则表达式,直到匹配到一个为止。

更多正则表达式的使用可以查看Python正则表达式

view当 Django匹配了一个正则表达式就会调用指定的view逻辑, 上面代码中会调用article/views.py中的home函数

kwargs任意关键字参数可传一个字典至目标view

name命名你的 URL, 使url在 Django 的其他地方使用, 特别是在模板中

现在在浏览器中输入localhost:9000应该可以看到下面的界面


Views和URL_第3张图片

3.Django Views和URL更近一步

很多时候我们希望给view中的函数逻辑传入参数, 从而呈现我们想要的结果

现在我们这样做, 在my_blog/article/views.py加入如下代码:


Views和URL_第4张图片

^(?P\d+)/$这个正则表达式的意思是将传入的一位或者多位数字作为参数传递到views中的detail作为参数, 其中?P定义名称用于标识匹配的内容

%s 格式化字符串    

我们尝试如下的URL

http://localhost:9000/1000/


Views和URL_第5张图片


Views和URL_第6张图片

这里最好在admin后台管理界面增加几个Article对象, 防止查询对象为空, 出现异常

现在可以访问http://localhost:9000/1/

显示如下数据表示数据库访问正确(这些数据都是自己添加的), 并且注意Article.objects.all()返回的是一个列表

你可能感兴趣的:(Views和URL)