1、安装python、Django
检查是否安装成功:
C:\Users\luoshixiang>python
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.get_version()
'3.0.7'
2、Django 创建第一个项目
Django 管理工具 :django-admin.py
C:\Users\luoshixiang\AppData\Local\Programs\Python\Python37\Lib\site-packages\django\bin\django-admin.py
1)创建第一个项目:
django-admin.py startproject HelloWorld
PS E:\py_workspace_04\lianxi> cd C:\Users\luoshixiang\AppData\Local\Programs\Python\Python37\Lib\site-packages\django\bin
PS C:\Users\luoshixiang\AppData\Local\Programs\Python\Python37\Lib\site-packages\django\bin> ls
目录: C:\Users\luoshixiang\AppData\Local\Programs\Python\Python37\Lib\site-packages\django\bin
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2020/6/8 15:06 __pycache__
-a---- 2020/6/8 15:05 128 django-admin.py
C:\Users\luoshixiang\AppData\Local\Programs\Python\Python37\Lib\site-packages\django\bin>E:
E:\>cd lianxi
E:\lianxi>python C:\Users\luoshixiang\AppData\Local\Programs\Python\Python37\Lib\site-packages\django\bin\django-admin.py startproject HelloWorld
E:\lianxi>tree
卷 工作 的文件夹 PATH 列表
卷序列号为 BAAF-17E2
E:.
└─HelloWorld
└─HelloWorld
目录说明:
2)启动服务器:python manage.py runserver 0.0.0.0:8000
0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。
在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 127.0.0.1:8000) 及端口号,
E:\lianxi>python ./HelloWorld/manage.py runserver 127.0.0.1:8000
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 08, 2020 - 16:05:09
Django version 3.0.7, using settings 'HelloWorld.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[08/Jun/2020 16:05:34] "GET / HTTP/1.1" 200 16351
[08/Jun/2020 16:05:34] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[08/Jun/2020 16:05:34] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 86184
[08/Jun/2020 16:05:34] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 85876
[08/Jun/2020 16:05:34] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 85692
Not Found: /favicon.ico
[08/Jun/2020 16:05:35] "GET /favicon.ico HTTP/1.1" 404 1976
如果正常启动,输出结果如下:
3) 视图和 URL 配置
在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 views.py 文件,并输入代码:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world ! ")
接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.hello),
]
完成后,启动 Django 开发服务器,并在浏览器访问打开浏览器并访问:
我们也可以修改以下规则:
HelloWorld/HelloWorld/urls.py 文件代码:
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello),
]
通过浏览器打开 http://127.0.0.1:8000/hello,输出结果如下:
注意:项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。
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\w+)/$', views.bio, name='bio'), re_path(r'^weblog/', include('blog.urls')), ... ]