前提本地已经安装了python环境
pip install django
检查是否安装Django:
python -m django --version
3.2.7 若生成版本号,则证明已经安装了,此版本的Django;
若得到错误提示
No module named django
则证明未安装
CMD(终端terminal)中找到你想创建Django项目的目录
在该目录下运行命令:
django-admin startproject 项目名
举例:
django-admin startproject mysite
代码会在当前目录下创建一个mysite目录
检查项目是否创建成功:
进入到mysite目录中,运行
python manage.py runserver
显示:
Performing system checks... System check identified no issues (0 silenced). You have unapplied migrations; your app may not work properly until they are applied. Run 'python manage.py migrate' to apply them. 四月 06, 2021 - 15:50:53 Django version 3.1, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
启动了Django自带的用于开发的简易服务器
用浏览器访问: https://127.0.0.1:8000/就能显示出Django的首页
默认情况下runserver命令会将服务器设置为监听本机内部IP的8000端口
可以改变服务器端口:
python manage.py runserver 8080
项目与应用的差别:
应用:应用是一个专们用于做某事的网络应用程序;
项目:项目是一个网站使用的配置和应用的集合。
项目可以包含多个应用,应用也可以被多个项目使用
在manage.py所在目录下,创建一个应用:
python manage.py startapp 应用名
创建一个polls应用:
python manage.py startapp polls
打开应用polls中的view.py(polls/view.py),输入以下代码:
from django.http import HttpResponse def index(request): return HttpResponse("Hello,World!")
要在项目中看到效果,需要一个URL映射到它
为了创建一个URL.conf
,需要在polls目录里新建一个url.py文件
在polls/urls.py
中,输入如下代码:
# polls/urls.py from django.urls import path from . import views urlpatterns = { path('', views.index, name='index'), } # views.index(views.py下的index函数)
在根URL.conf文件中指定我们创建的polls.urls模块(polls/urls.py)
在项目mysite/urls.py
的urlpatterns
列表中插入一个include()
添加url:
添加其他URL模块时,总应该使用include()
如下:
# mysite/urls.py from django.contrib import admin from django.urls import include,path urlpatterns = [ path('polls/', include('polls.urls')), # 新增的polls.urls path('admin/', admin.site.urls), # 源文件中自带的主页 ]
path()的四个参数:
两个必须参数:route
,view
两个非必须参数:kwargs
,name
route:匹配一个URL的准则(类似正则表达式),当Django响应一个请求,会从urlpatterns的第一项开始,按顺序匹配列表中的项,直到找到匹配的
注释
这些准则不会匹配 GET 和 POST 参数或域名。例如,URLconf 在处理请求 https://www.example.com/myapp/ 时,它会尝试匹配 myapp/
。处理请求 https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/。
view:找到一个匹配准则,就会调用这个特定的视图函数,并传入一个HttpRequest对象作为第一个参数,被捕获的对象以关键字参数的形式传入
举例:
path('polls/', include('polls.urls'))
route:匹配准则就是’polls/’
view:就是polls/views,传入
kwargs:关键字参数可以作为一个字典传递给目标视图函数
name:为URL取名可以在Django的任意一个地方调用