It has been 1485 days since the last update, the content of the article may be outdated.
Django系列是我在接触Python应用框架以后学习的后台框架。同时还有python的三大框架Flask,Django,Tornado。都有过了解,从此开始想后端领域进发。
相较于Spring-boot这类JAVA框架,Django可以说是十分新手友好了。VUE+Django+Mysql完全满足企业级的应用要求。我这里就是使用Sqlite进行M(odel)T(emplate)V(iew)框架搭建。
从此我开始接触后端。再后来开始使用JAVA框架,学习云服务。但是用的最多的还是Django,用它重构了Luoo网,用它搭建了课题组网站。
这是最初在win10虚拟机上开始的学习笔记,那时候参考的是‘追梦人物’的博客教程。我这里只是记录,年代久了,而且很乱。详细的入门级的教程可以去学习dusai大哥> dusaiphoto.com。
使用模板系统
在 blog\urls.py 中写入这些代码:
blog/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [ url(r'^$', views.index, name='index'), ]
|
在我们的项目根目录(即 manage.py
文件所在目录)下建立一个名为 templates
的文件夹,用来存放我们的模板。
然后在 templates\
目录下建立一个名为blog
的文件夹,用来存放和 blog
应用相关的模板。
我们在 templates\blog
目录下建立一个名为 index.html
的文件,此时你的目录结构应该是这样的:
blogproject\ manage.py blogproject\ __init__.py settings.py ... blog\ __init__.py models.py ,,, templates\ blog\ index.html
|
在 templates\blog\index.html
文件里写入下面的代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{ title }}</title> </head> <body> <h1>{{ welcome }}</h1> </body> </html>
|
这是一个标准的 HTML 文档,只是里面有两个比较奇怪的地方:{{ title }}
,{{ welcome }}
。
这是 Django 规定的语法。用 {{ }}
包起来的变量叫做模板变量。
Django 在渲染这个模板的时候会根据我们传递给模板的变量替换掉这些变量,最终在模板中显示的将会是我们传递的值。
在 settings.py
找到TEMPLATES
选项,它的内容是这样的:
blogproject/settings.py
TEMPLATES = [ { '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.py
TEMPLATES = [ { ... 'DIRS': [os.path.join(BASE_DIR, 'templates')], ... }, ] ``` `BASE_DIR` 是 `settings.py` 在配置开头前面定义的变量,记录的是工程根目录 `blogproject\ `的值(注意是最外层的` blogproject\` 目录)。 在这个目录下有模板文件所在的目录 `templates\`,于是利用`os.path.join` 把这两个路径连起来,构成完整的模板路径,`Django` 就知道去这个路径下面找我们的模板了。
视图函数可以改一下了: blog/views.py ```python from django.http import HttpResponse from django.shortcuts import render
def index(request): return render(request, 'blog/index.html', context={ 'title': '我的博客首页', 'welcome': '欢迎访问我的博客首页' })
|
cmd python manage.py runserver
重启服务并查看效果。