Django入门探索(二)

Django入门探索(二)

Django shell

输入了一些数据之后,就能通过交互式的编程方式查看这些数据了。

python manage.py shell

>>> from learning_logs.models import Topic
>>> Topic.objects.all()

[, ]

应该是帮你执行了数据库的操作。
要这样还不如直接打开db文件看看。

创建网页:学习笔记主页

使用Django创建网页的几个步骤:
1。定义URL
2。编写视图函数
3。编写模板。

ps:但是讲真之前有好几个网页应该是都Django给弄好的。

当你在地址栏输入一个地址的时候,这个地址被映射到特定的视图——其实也就是一般所说的路由。

这个视图函数获取并处理网页需要的数据。视图函数通常调用一个模板,再渲染(其实就是把数据填进模板用的地方)。

映射url

打开learning_log下面的文件urls

from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
]

前两行导入了为项目和管理网站管理URL的函数和模块。这个文件的主体定义了变量urlpatterns。
在这个针对整个项目的urls.py文件中, 变
量urlpatterns 包含项目中的应用程序的URL。 之后的代码包含模块admin.site.urls , 该模块定义了可在管理网站中请求的所有URL。

我们需要包含learning_logs的urls。

因为learning_logs是一个应用啊,而learning_log是一个项目,这个项目要包含所有程序的urls。

learning_log中的urls

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'', include('learning_logs.urls', namespace='learning_logs')),
]


第二条那个include是引入了learning_logs.urls中的urls,并且利用名字空间保证不会冲突。

那么接下来我们就可以定义属于learning_logs的urls了。
再一次强调这两个的不一样:
learning_log是项目,它下面有很多应用程序,所以包含了所有应用程序的urls。每一个应用程序有自己的urls。

在learning_logs中创建文件urls:

from django.conf.urls import url

from . import views

urlpatterns = [

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


这里面那个函数中的views.index是视图函数名字,后边是这个映射的名字。
前面是正则表达式,当正则表达式满足的话,跳到后边的视图函数中。

每次需要提供到这个主页的链接时,都用这个映射的名字。

编写视图函数

视图函数接受请求中的信息,准备好生成网页用的数据。

learning_logs中有views:

from django.shortcuts import render

# Create your views here.

现在只引入了render函数。它提供模板响应。

你这样写:


from django.shortcuts import render
def index(request):
    return render(request, 'learning_logs/index.html')


render函数接受两个参数:一个是请求,后边是用于生成网页的模板。

编写模板

在learning_logs中创建一个文件夹,名字为templates,之后在templates中创建一个文件夹,名字为learning _logs.
(我也不知道为什么但是人家的确就是这样要求的)。

index.html中:

<p>Learning Logp>
<p>Learning Log helps you keep track of your learning, for any topic you're
learning about.
p>

现在输入http://127.0.0.1:8000/ 跳转到自己的index页面了。

为什么呢?
因为你定义了
url(r'^$', views.index, name='index'),
的路由,里面的正则'^$',^是匹配开头,$是匹配结尾。^$就是啥都没有,于是你在输入基本地址之后跳转到的是views.index这个路由,这个路由返回的是'learning_logs/index.html' index.html模板。

ps:蜗牛就先写到这儿了,这种隔靴搔痒的编程蜗牛实在受不了啦!
也许是蜗牛道行太低感受不到框架的好处,但是知其然不知其所以然的感觉不好受啊……

你可能感兴趣的:(Django成长记)