创建项目
版本:
- Python:3.7.4
- Django:3.0.6
创建项目
使用django-admin.py来创建HelloWorld项目:
django-admin startproject HelloWorld
项目目录结构
$ cd HelloWorld/
$ tree
.
|-- HelloWorld
| |-- __init__.py
| |-- asgi.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
目录说明:
- HelloWorld:项目的容器
- manage.py:一个使用的命令工具,可以以各种方式与该Django项目进行交互。
- HelloWorld/_init_.py:一个空文件,告诉Python该目录是一个Python包。
- HelloWorld/settings.py:该Django项目的设置/配置。
- HelloWorld/urls.py:该Django项目的URL声明,一份由Django驱动的网站“目录”。
- HellowWorld/wsgi.py:一个WSGI兼容的Web服务器的入口,以便运行项目。
启动服务器
python manage.py runserver 0.0.0.0:8000
0.0.0.0 让其他电脑可连接到开发服务器,8000为端口号。
如果不说明,默认为8000。
本机登录127.0.0.1:8000,正常启动
视图和URL配置
在HelloWorld目录先新键views.py文件
# HelloWorld/HelloWorld/views/py
from django.http import HttpResponse
def hello(request):
return HttpResponse('Hello world')
绑定URL与视图函数。打开urls.py文件
# HelloWorld/HelloWorld/urls.py
from . import views
urlpatterns = [
url(r'^$', views.hello),
]
目录结构
$ tree
.
|-- HelloWorld
| |-- __init__.py
| |-- __init__.pyc
| |-- settings.py
| |-- settings.pyc
| |-- urls.py # url 配置
| |-- urls.pyc
| |-- views.py # 添加的视图文件
| |-- views.pyc # 编译后的视图文件
| |-- wsgi.py
| `-- wsgi.pyc
`-- manage.py
urls也可以写成如下规则
# HelloWorld/HelloWorld/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello),
]
注:项目中如果代码有改动,服务器会自动检测代码的改动并自动重新载入。
path()函数
Django path()可以接受四个参数,分别是两个必选参数:route、view和两个可选参数:kwargs、name。
path(route, view, kwargs=None, name=None)
- route:字符串,表示URL规则,与之匹配的URL会执行对应的第二个参数view。
- view:用于执行与正则表达式匹配的URL请求
- kwargs:试图使用的字典类型的参数
- name:用来反向获取URL
Django2.0 中可以使用re_path()方法来兼容1.x版本中的url()方法,一些正则表达式的规则也可以通过re_path()来实现
from django.urls import include, re_path
urlpatterns = [
re_path(r'^index/$', views.index, name='index'),
re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
re_path(r'^weblog/', include('blog.urls')),
...
]