Django入门实践-1
python 3.6 django-3.0.5
1. Django安装
1.1 pip安装
- 若不指定具体版本,则使用命令:
pip install django
- 若指定特定版本,则使用命令:
pip install django==3.0.5
然而不知为何,我使用这个命令总安装失败,因此我经常会自己下载whl文件或者库包,然后手动安装
1.2 手动安装
-
访问django官网:https://www.djangoproject.com/download/下载latest release版本。
-
我下载的是Django-3.0.5.tar.gz。解压缩后,在当前目录下打开cmd或者powershell,输入安装命令:
python setup.py install
,它会自动下载相关的依赖包,分析它的安装过程,它的依赖包有:
asgiref、sqlparse、pytz等三个库包( 如果自动安装成功,那就ok了,悲剧的是我的pytz下载超时,安装不成功!) -
若有依赖包安装不成功的情况,则可以去pypi网站上下载相应库包,手动安装。(于我而言,下载了pytz库包后,在当前环境下安装之
pip install pytz-2019.3-py2.py3-none-any.whl
)
1.3 环境变量配置
- 将路径:
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts
;
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Lib\site-packages\Django-3.0.5-py3.6.egg\django
;添加进环境变量(我的电脑右键–属性–高级系统设置–环境变量–Path)
1.4 版本检测
-
简单操作:cmd输入:
python -m django --version
-
python内操作:cmd依次输入:
python // 进入python环境 import django // import django django.get_version() // 获取django版本
2. 开始创建项目
2.1 创建项目:
-
在项目文件夹中打开cmd,输入:
django-admin startproject HuaWeb
,表示在当前位置创建项目 -
查看是否已经创建成功:
cd HuaWeb/
;dir
查看目录:其中:
目录说明:HuaWeb: 项目的容器。 manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。 HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。 HelloWorld/settings.py: 该 Django 项目的设置/配置。 HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。 HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。 HelloWorld/asgi.py: django3.0新增的功能,一种具有异步功能的 Python web 服务器网关接口协议
还没搞明白,此处附上知乎中对asgi的介绍
-
修改配置文件:目前最重要的是修改
settings.py
。调试状态下,我希望只自己可以访问,因而在ALLOWED_HOSTS
这里添加值为localhost
;如果想要所有人可以访问,则值为*
-
启动server:
python manage.py runserver 0.0.0.0:8080
,其中8080为端口号,也可以设置为别的。这时候就可以通过http://localhost:8080/
或者127.0.0.1:8080
访问我们的网站啦!初始网站,神马都没有
2.2 添加第一行代码
2.2.1 在项目的视图内添加网页代码
对于一个django框架的项目而言,项目容器已经包含了网站的基本架构。
-
配置路由url:
原始路由指向的是django框架默认的网页格式,若要按照我们的个性化要求进行响应,则需要在HelloWorld/HelloWorld/urls.py
内添加新的路由:from django.contrib import admin from django.urls import path from django.conf.urls import url # 新增 from . import view # 新增,表示添加当前视图也可以写成from HelloWorld import view urlpatterns = [ path('admin/', admin.site.urls), url(r'^aa$',view.hello), # 新增,表示用127.0.0.1:8080/aa可以访问到view.hello函数内容 ]
-
编写视图函数:
视图函数用于响应url的内容,如上view.hello
表示指向视图view.py
的hello
函数。未编写时,该函数为空,则添加函数:from django.http import HttpResponse def hello(request): return HttpResponse("Hello world ! ")
-
cmd重启server:
python manage.py runserver 0.0.0.0:8080
,输入网址:127.0.0.1:8080/aa
访问我们的第一个网页helloworld:
2.2.2 通过应用搭建web项目
此处添加一个关于django框架的理解:
按照csdn学院的老师阐述,项目相当于一个小区,而应用则是小区里一栋栋的楼,应用中的每一个子网页则对应楼中每一层。
-
添加一个应用:在cmd中命令:
python manage.py startapp home
,表示生成一个应用home
,如下图所示,为该应用内包含的文件,其中应用路由文件urls.py
为我从主项目中copy来的。
-
配置主项目路由文件
HuaWeb/urls.py
:在该文件内添加引用include
,然后新增urlpatterns
,通过include
函数将路由定位至home
应用的路由urls.py
。from django.contrib import admin from django.urls import path from django.conf.urls import url,include # 新增include引用 urlpatterns = [ path('admin/', admin.site.urls), url(r'^aa/',include("home.urls")), # 新增,表示用127.0.0.1:8080/aa定位到myapp.urls路由 ]
-
配置应用
home
的路由文件urls.py
:from django.conf.urls import url from home import views urlpatterns = [ url(r'^bb$',views.index,name="index"), # 表示127.0.0.1:8080/aa/bb定位到views.index函数 ]
-
配置应用
home
的视图文件views.py
:文件本身为空,需要我们自建函数。from django.shortcuts import render from django.http import HttpResponse # Create your views here. def index(request): return HttpResponse("Hello World!")
-
cmd重启server:
python manage.py runserver 0.0.0.0:8080
,输入网址:127.0.0.1:8080/aa/bb
访问我们网页helloworld:
2.2.3 加载模板以创建web项目
-
在主项目配置文件
settings.py
中配置TEMPLATES
的DIRS
项,将其定位至模板目录BASE_DIR/Templates
:TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, "Templates"], # 新增,表示模板目录为BASE_DIR/Templates 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
-
在根目录下创建模板文件夹
Templates
,并在该文件夹下创建网页文件index.html
,然后就可以在此处编写属于自己的网站了,此处我在<body>
标签内随便填入内容如下:
- 配置路由:如2.2.2所示,先对主项目路由文件
urls.py
进行指向配置,后配置应用home
中urls.py
:
# 主项目路由配置:HuaWeb/urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url,include # 新增include引用
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^aa/',include("home.urls")), # 新增,表示用127.0.0.1:8080/aa定位到myapp.urls路由
]
# 应用路由配置:home/urls.py
from django.conf.urls import url
from home import views
urlpatterns = [
url(r'^bb$',views.index,name="index"), # 表示127.0.0.1:8080/aa/bb定位到views.index函数
]
- 配置应用
home
的视图文件views.py
:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return render(request, "index.html") # 使用render来将request定位至Templates/index.html
- cmd重启server:
python manage.py runserver 0.0.0.0:8080
,输入网址:127.0.0.1:8080/aa/bb
访问我们的网页: