Python django 入门学习系列(二)
来源:互联网 发布:python教程 廖雪峰 编辑:程序博客网 时间:2024/04/30 01:12
1 . 绑定 URL 与视图函数
2 .使用Django模板系统
这里主要是跟着追梦的教程自己一边看着一边用于实践来写的
步骤1:首先在 项目应用的目录下创建一个 urls.py 文件
在urls.py 中写入:
blog/urls.pyfrom django.conf.urls import urlfrom . import views#写这里的路由urlpatterns = [ url(r'^$', views.index, name='index'),]
注意:在项目根目录的 blogproject\ 目录下(即 settings.py 所在的目录),原本就有一个 urls.py 文件,这是整个工程项目的 URL 配置文件。而我们这里新建了一个 urls.py 文件,且位于 blog 应用下。这个文件将用于 blog 应用相关的 URL 配置。不要把两个文件搞混了
步骤2:编写视图函数
在view.py中写入:
blog/views.pyfrom django.http import HttpResponsedef index(request): return HttpResponse("欢迎访问我的博客首页!")
3 配置项目url
Django 匹配 URL 模式是在 blogproject\ 目录(即 settings.py 文件所在的目录)的 urls.py 下的,所以我们要把 blog 应用下的 urls.py 文件包含到 blogproject\urls.py 里去,打开这个文件看到如下内容:
将1内容改为2:
1
blogproject/urls.py"""一大段注释"""from django.conf.urls import urlfrom django.contrib import adminurlpatterns = [ url(r'^admin/', admin.site.urls),]
2
- from django.conf.urls import url+ from django.conf.urls import url, includefrom django.contrib import adminurlpatterns = [ url(r'^admin/', admin.site.urls),+ url(r'', include('blog.urls')),]
这里 - 表示删掉这一行,+ 表示添加这一行。
我们这里导入了一个 include 函数,然后利用这个函数把 blog 应用下的 urls.py 文件包含了进来。此外 include 前还有一个 r”,这是一个空字符串。这里也可以写其它字符串,Django 会把这个字符串和后面 include 的 urls.py 文件中的 URL 拼接。比如说如果我们这里把 r” 改成 r’blog/’,而我们在 blog.urls 中写的 URL 是 r’^$’,即一个空字符串。那么 Django 最终匹配的就是 blog/ 加上一个空字符串,即 blog/。
下面在浏览器中输入http://localhost:8000就可以看大我们要看到的东西了
使用Django模板系统
1 在manage.py同级目录下新建一个templates文件夹或者包都可以,这并不影响。
2 在templates文件夹下可以新建一个blog文件夹在其下新建一个index.html
注意:再一次强调 templates\ 目录位于项目根目录,而 index.html 位于 templates\blog 目录下,而不是 blog 应用下,如果弄错了你可能会得到一个TemplateDoesNotExist 异常。如果遇到这个异常,请回来检查一下模板目录结构是否正确。
3 . index.html的写法:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>{{ title }}</title></head><body><h1>{{ welcome }}</h1></body></html>
其中这里的title,welcome,是django规定的语法,主要是从views.py里面传参过来。
4 设置settings.py里面的模板路径
在 settings.py 文件里设置一下模板文件所在的路径。在 settings.py 找到 TEMPLATES 选项
blogproject/settings.pyTEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, },]其中 DIRS 就是设置模板的路径,在 [] 中写入 os.path.join(BASE_DIR, 'templates'),即:设置为:blogproject/settings.pyTEMPLATES = [ { ... 'DIRS': [os.path.join(BASE_DIR, 'templates')], ... },]
5 把视图再修改一下:
blog/views.pyfrom django.http import HttpResponsefrom django.shortcuts import renderdef index(request): return render(request, 'blog/index.html', context={ 'title': '我的博客首页', 'welcome': '欢迎访问我的博客首页' })
这里我们不再是直接把字符串传给 HttpResponse 了,而是调用 Django 提供的 render 函数。这个函数根据我们传入的参数来构造 HttpResponse。
我们首先把 HTTP 请求传了进去,然后 render 根据第二个参数的值 blog/index.html 找到这个模板文件并读取模板中的内容。之后 render 根据我们传入的 context 参数的值把模板中的变量替换为我们传递的变量的值,{{ title }} 被替换成了 context 字典中 title 对应的值,同理 {{ welcome }} 也被替换成相应的值。
最后再浏览器中输入地址,我们就可以看到我们想要的代码了。
- Python django 入门学习系列(二)
- Python django 入门学习系列(一)
- Python学习二:Django Web入门
- Python.Django学习(二)
- python学习笔记(django入门01)
- python学习笔记(django入门02)
- Python web入门:Django学习与实践二(简单页面实现和创建一个模板)
- Django入门(二)
- [Python] 利用Django进行Web开发系列(二)
- Django入门级搭建系列之二
- python入门学习(二)
- python入门学习(二)
- django学习系列之模板系统篇(二)
- 深度学习:MATLAB 入门系列(二)
- Django学习系列(二)--第一个App
- Django学习(二)
- Python Web开发:Django入门学习笔记(1)
- Python Web开发:Django入门学习笔记(2)
- JAVA中的IO流
- 将格林威治时间转换为字符串
- 设计模式之桥接模式--合成复用原则
- 线程控制(一)
- 面向对象的基本写法和组成
- Python django 入门学习系列(二)
- Java中处理异常throw和throws
- 老生常谈的跨域处理
- 集训 8.2
- hadoop namenode高可用解决方案
- Linux运维进阶-文档总结-MySQL的主从分离
- 数字在排序数组中出现的次数
- Caffe testing picture demo
- tow weeks vim (7)