Django for beginner:用Django2.0创建一个Hello World网站
接着进行Django的学习,学习资料是一本在线阅读的书籍,Django for beginners,初学者可以考虑看看,学习内容是最新的Django2.0版本。
Chapter 2
本章学习日期: 2018年3月1日
章节学习地址:https://djangoforbeginners.com/hello-world/
本章学习内容:
本章主要介绍了如何创建一个django项目,以及在项目中建立应用,最后成功实现了一个最基本的Hello World!网页内容。之后,又学习了git的用法,并在bitbucket里提交了自己的代码。
初步设置
导航至计算机的一个新的目录下,然后创建一个helloworld
的文件夹。
创建新的虚拟环境,导入Django,并激活。
$ pipenv install django
$ pipenv shell
创建新的Django项目,叫做helloworld_project
。
(helloworld) $ django-admin startproject helloworld_project .
使用tree
命令行,可以看到Django项目的结构,如下。
(helloworld) $ tree
.
├── helloworld_project
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
1 directory, 5 files
简单的文件说明。
settings.py
文件控制整个项目的设置urls.py
文件告诉Django对浏览器或url请求作出何种相应,建造什么页面wsgi.py
文件代表了web server gateway interface,帮助Django管理好我们最终的网页manage.py
用来执行不同的Django命令。比如$ python manage.py runserver
。
创建应用
Django使用项目和应用的概念来保持代码干净可读。一个简单的Django项目包含一个或多个应用(app),共同打造一个网络应用程序。例如,一个Django电商网站可能包含一个用户认证应用、一个支付应用一级一个第三方商品详情展示应用。
这里,我们第一个应用叫做pages
。
$ python manage.py startapp pages
使用tree
命令可以查看结构如下:
├── pages
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
让我们来回顾一下新的pages
应用文件的作用:
admin.py
是内嵌的Django Admin应用的配置文件apps.py
是应用本身的配置文件migrations/
记录了我们models.py
的每一次改变,所以数据库和models.py
能够保持同步tests.py
是我们应用特定的测试views.py
是我们处理网络应用的请求/响应的逻辑的地方
创建好pages
之后,还要把新建的应用添加到Django项目的settings.py
中,具体如下:
# helloworld_project/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'pages',
]
视图(views)和URLConfs
在Django里,视图(views)决定了什么内容展示在一个页面上,而URLConfs决定了内容到底去哪里。
当用户请求一个特定页面,比如/
表示主页,URLConf就会用正在表达式将这一请求和适当的视图函数做匹配,从而返回正确的数据。
换句话说,视图会输出"Hello,World!"而*url则会确保用户访问/
能够重定向至正确的视图。
更新一下pages
应用里的views.py
文件:
# pages/views.py
from django.http import HttpResponse
def homePageView(request):
return HttpResponse('Hello, World!')
上述代码是说,只要当视图函数homePageView
被调用,就返回"Hello World!"。由于我们导入了django内置的HttpResponse方法,所以我们能将响应对象返回给用户。
homePageView
函数接受request
对象,并返回一个字符串。
接下来,要配置urls。在pages
应用里,创建一个新的urls.py
文件,并更新以下代码:
# pages/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.homePageView, name='home')
]
我们从django.urls
导入了path
,用来管理urlpattern
,然后又导入了视图。
urlpattern包含三个部分:
- Python的正则表达式,这里是空字符串
''
- 特定视图,这里是
homePageView
- 添加可选的url名称,
home
换句话说,如果用户在/
请求一个页面,那么就调用homePageView
视图。
最后,我们还要在项目级的urls.py
文件里配置一下。记住,在一个Django项目里,经常会包含多个应用,所以每个都需要各自的路径(route)。
在helloworld_project/urls.py
文件里更新如下代码:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('pages.urls'),
]
Hello, World!
代码写完了!验证一下,重启Django服务:
$ python mange.py runserver
重新刷新浏览器,进入http://127.0.0.1:8000/ ,显示"Hello,World!"
Git
上一章,我们导入了git这个版本控制系统,这章我们开始使用。
首先,是初始化git。
在当前helloworld
根目录下使用命令:$ git init
。
$ git status
查看当前状态。
$ git add -A
$ git commit -m 'initial commit'
用add -A
添加所有改变,然后commit
提交,同时加上一段话,描述改变了什么。
注意,在windows的cmd环境下,提交时候最好用双引号,否则可能会报错。
即:
`$ git commit -m "initial commit"
Bitbucket
有一个好习惯,就是对每一份项目创建一个远程repository,保存代码。
Bitbucket 和 Github都不错,前者可以免费创建私人repository,后者知名度更大。
这里,我们用Bitbucket管理自己“还不想给别人看”的代码……
创建Bitbucket账号很简单,不多赘言。
账号创建好,创建新的repository,这里名字就叫做hello-world。
然后做两件事,将项目提交到Bitbucket。
$ git remote add origin https://<USER>@bitbucket.org/<USER>/hello-world.git
<USER>
换成你自己的Bitbucket用户名。这样就将远程的repository和本地的关联到一起。
如果是第一次在本机提交到Bitbucket,会有一个登陆校验,输入你的Bitbucket账户名和密码即可。用过Git的同学应该也比较熟悉这个流程。
$ git push -u origin master
关联到一起后,一定要记得push
,将本地的代码提交。
大功告成!
不要忘记退出虚拟环境,$ exit
。
结论
本章内容很基础,没有太多复杂的理论知识,比如MVC模型,只是手把手带着学习者创建了一个最小可执行应用程序。
感觉自己棒棒哒!
Hello,World!
现在Python越来越流行,一直想学学看看,但。。。太懒。。。