Django学习之一

Django学习之一

Python 3.6.4Django 2.0.1

创建项目

1
django-admin startproject 项目名

会创建一个以项目名命名的文件夹,这里假设项目名为mysite,目录结构为

1
2
3
4
5
6
7
8
mysite/ //自定义的项目名
manage.py //命令行工具
//mysite目录下是你导入任何东西时将需要使用的Python包的名字(例如 mysite.urls)
mysite/
__init__.py //一个空文件,它告诉Python这个目录应该被看做一个Python包
settings.py //该Django 项目的设置/配置
urls.py //该Django项目的URL声明;你的Django站点的“目录”
wsgi.py //用于你的项目的与WSGI兼容的Web服务器入口

创建应用

1
python manage.py 应用程序名

会创建一个以应用程序名命名的文件夹,这里假设项目名为myapp,目录结构为

1
2
3
4
5
6
7
8
9
myapp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py

编写一个视图

  • 打开myapp下的views.py文件,添加以下代码
1
2
3
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world.")

可以看出这是返回的字符串内容,要调用视图,需要将它映射到一个url上

  • myapp目录下创建一个名为urls.py的文件,添加以下代码
1
2
3
4
5
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
  • 将项目mysite的url配置指向应用myapp的url模块

mysite/urls.py中,引入django.urls.include的import, 然后插入一个 include()函数 在 urlpatterns 列表中

1
2
3
4
5
6
from django.urls import include, path
from django.contrib import admin
urlpatterns = [
path('myapp/', include('myapp.urls')),
path('admin/', admin.site.urls),
]

  • 现在已经将一个index视图连接到了URLconf中。 让我们验证它的工作,运行以下命令:
1
python manage.py runserver
  • 注意下path()函数

path()函数传入四个参数,两个是必需的:routeview,以及两个可选的:kwargs ,和name.
route
route是一个包含URL模式的字符串。处理请求时,Django从urlpatterns中的第一个模式开始,并在列表中向下,比较请求的URL和每个模式,直到找到匹配的模式。模式不搜索GET和POST参数或域名。 例如,在对https://www.example.com/myapp/的请求中,URLconf将查找myapp/。https://www.example.com/myapp/?page=3的请求中,URLconf也会查找myapp/。
view
当Django找到匹配的模式时,它会以HttpRequest对象作为第一个参数和路由中的任何“捕获”值作为关键字参数来调用指定的视图函数。
kwargs
任意关键字参数可以在字典中传递给目标视图。
name
命名您的URL可以让您从Django的其他地方明确地引用它,特别是在模板中。 这个强大的功能使您可以对项目的URL模式进行全局更改,而只触摸单个文件。

Author: 1314mylove
Link: https://blog.1314mylove.com/2018/01/Django学习之一/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.