ad

《零基础Python 从入门到精通》_让你学得轻松_19.3 开始Django之旅

admin 137 2023-10-25

【摘要】 本书摘自《零基础Python 从入门到精通》一书中第1章,第1节,编者是壹零快学。

19.3 开始Django之旅

19.3.1 配置数据库

上一节已经介绍了Django的安装和创建项目, 以及一个简单的开发服务器。对于网站来说, 数据库也是一个必不可少的环节。本章的Django示例选用的是SQLite数据库。SQLite数据库作为一 种轻量级的数据库引擎, 小巧、简单、方便管理,具有其他大型数据库所不具备的易于上手的优 势。Django把数据库操作抽象成了ORM模型,用户只需在配置文件中做相关的配置即可,如果想要 换成别的数据库也只需要修改配置文件而不需要修改业务代码,极大地方便了用户的迁移。

在setting.py文件中设置相应的属性值对数据库进行设置:

DATABASES = {

'default': {

《零基础Python 从入门到精通》_让你学得轻松_19.3 开始Django之旅

'ENGINE': 'django.db.backends.sqlite3',

'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

}

}

默认的Django项目使用的就是SQLite,所以我们并不需要做任何改动。上面的操作只是配置数据库,但是并没有生成数据库。生成数据库可以使用manager.py的migrate来帮助我们操作:

python manage.py migrate

屏幕上会输出:

Operations to perform:

Apply all migrations: admin, auth, contenttypes, sessions

Running migrations:

Applying contenttypes.0001_initial... OK

Applying auth.0001_initial... OK

Applying admin.0001_initial... OK

Applying admin.0002_logentry_remove_auto_add... OK

Applying contenttypes.0002_remove_content_type_name... OK

Applying auth.0002_alter_permission_name_max_length... OK

Applying auth.0003_alter_user_email_max_length... OK

Applying auth.0004_alter_user_username_opts... OK

Applying auth.0005_alter_user_last_login_null... OK

Applying auth.0006_require_contenttypes_0002... OK

Applying auth.0007_alter_validators_add_error_messages... OK

Applying auth.0008_alter_user_username_max_length... OK

Applying sessions.0001_initial... OK

这个操作会在目录下生成db.sqlite3文件,并且帮助我们生成数据库和相应的表。

19.3.2 生成Django应用

一个Django网站可能会包含多个Django应用。可以使用manage.py的startapp子命令来生成Django 应用。

python manage.py startapp news

这样会创建一个news目录,它的目录结构大致如下:

news

│ admin.py

│ apps.py

│ models.py

│ tests.py

│ views.py

│ __init__.py

└─migrations

__init__.py

这个目录包含了news应用的全部内容,现在让我们开始编写第一个网页。

首先打开news/views.py文件,输入如下代码:

动手写19.3.1

from django.http import HttpResponse

def index(request):

return HttpResponse("Hello,world! This is news index")

这是Django中最简单的视图。要调用视图,我们需要将它映射到一个URL。为此,我们需要一 个URLconf。

在news目录中创建一个新的URLconf,可以在目录下新建文件urls.py,并编写如下代码:

动手写19.3.2

from django.conf.urls import url

from . import views

urlpatterns = [

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

]

读者可能已经发现,在内部的blog下也有一个urls.py文件。下一步就是要把news应用的urls.py 加入到项目的urls.py中。编辑blog/urls.py文件,先在开头导入include模块,然后在urlpatterns中加入 前面新建news的URLconf,修改后的文件如下:

动手写19.3.3

from django.conf.urls import include, url

from django.contrib import admin

urlpatterns = [

url(r'^news/', include('news.urls')),

url(r'^admin/', admin.site.urls),

]

第 19 章 使用Django创建Web站点

方法include()相当于二级路由策略,它将接收到的URL地址去除了它前面的正则表达式,将剩 下的字符串传递给下一级路由进行判断。

include方法的背后是一种即插即用的思想。项目根路由不关心具体app的路由策略,只管往指 定的二级路由转发,实现了解耦的特性。app所属的二级路由可以根据自己的需要随意编写,不会 和其他的app路由发生冲突。app目录可以放置在任何位置,而不用修改路由。这是软件设计里很常 见的一种模式。

现在已将索引视图连接到URLconf。让我们来验证它的工作,运行以下命令:

python manage.py runserver

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阅读《时空大数据与云平台 理论篇》_走进云的世界_1.4.2 时空大数据与云平台构建的意义
下一篇:看《Excel人力资源管理实操全流程演练》如何教你做更好的表格_7.1 考勤管理相关模板
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×