版本:
Python:3.7.4Django: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:80000.0.0.0 让其他电脑可连接到开发服务器,8000为端口号。
如果不说明,默认为8000。
本机登录127.0.0.1:8000,正常启动
在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.pyurls也可以写成如下规则
# 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:用来反向获取URLDjango2.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')), ... ]