django 3依赖以下几个第三方组件 sqlparsepytz,asgiref
在离线安装django建议先进行安装对应三个组件,执行完成完再进行django安装
cd
到一个你想放置你代码的目录执行
django-admin startproject 项目名称
Django
会生成一个符合Django项目标准的web项目结构的文件包,标准的Django项目主要包含两个部分:管理项目的命令行工具
manage.py
;项目实际所在的包,以项目名称命名的python包
项目实际所在的包中预生成了如下几个.py
文件:
__init__.py :一个空文件,作用是在项目运行时告知python解释器这是一个python包
asgi.py :作为项目web服务器上的一个入口,web服务器为asgi兼容
wsgi.py :项目在web服务器上的另一个入口,此时web服务器兼容WSGI
``setting.py:项目的配置信息存放位置,如数据库连接信息,web服务端口信息等项目基础配置应该添加在其中`
urls.py :用于存放此项目的所有URL声明,自定义的web服务接口路径必须添加在其中
Django自带了一个轻量级的web服务器,其仅适用于测试环境使用,生产环境推荐使用Apache。
自带服务器的使用如下:
cd到项目的manage.py所在目录,命令行执行:
python manage.py runserver
当看到窗口出现下面的输出时则表示服务器已经成功启动
Django version 3.1, using settings '项目名称.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
作为测试可以打开浏览器窗口并访问http://127.0.0.1:8000,正常可以看到启动页面
8000是django服务器的默认端口号,如果需要更改可以执行在启动命令时调整:
python manage.py runserver 指定端口号
如python manage.py runserve 8080
,注意,如果只是修改代码,Django服务器支持热部署,但是如果添加了新的文件则需要重新部署服务器
首先需要理解项目与应用的关系,通常来说,应用指的是一个专门做某一件事的应用程序,如登录应用,其对应的是网站的一个功能。而项目则是应用的集合,对应着一个网站。网站相关的配置也由项目进行管理。
创建项目的命令是python manage.py startapp 应用名称
,因此同样需要cd到manage.py
所在的目录或更下级目录执行生成以应用名称命名的应用目录,查看其结构,Django预生成了以下文件和目录:
__init__.py :说明应用也是一个python包
admin.py :
apps.py:用于存放应用程序的元数据,如应用名称
models.py
:
tests.py:
views.py:应用的web视图的集合,其用于完成前端请求路径的资源映射
migrations python包
对应web应用来说,处理浏览器的请求是它的必不可少的功能。Django框架中,处理前端请求的功能被交给各个应用的views.py
和urls.py
协作处理。
view处理页面请求,需要Django的http模块和render模块进行支持。实例如下
#login/views.py
from django.http import HttpResponse
#HttpResponse 用于构建http响应
def index(request):
return HttpResponse('welcome to
----------
blog,this is index')
在login应用下新建urls.py
用于管理login应用下的所有请求路径
#login/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('',views.index,name='index')
]
在项目的urls.py
中注册 login应用下的urls
#项目名称/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls), #引入基本配置路径
path('login/', include('login.urls')) # include() 用于引入其它的URLconfs
]
启动服务器 访问http://127.0.0.1:8080/login即可看到之前所设置的响应数据welcome to xxx blog,this is index
,8080为自定义的端口号。
对实例上调用的几个函数做一下说明:
path()
:path具有是个参数,分别是route,view,kwargs,name
,route
用于定义可匹配的URL路径,其支持一种类似于正则表达式的匹配方式,这个参数匹配请求路径中以/
做分隔部分而不包括GET
或POST
的参数。view
指定的则是实际的处理函数名称,在调用时会将httpRequest
作为首个参数传入处理函数,类似实例中的views.index
函数。name
用于为当前url取别名,使得在Django中作为一个唯一标识调用。kwargs
则和普通函数中的**kwargs
作用一致。
include
Django数据库相关的配置放置在项目的setting.py
中的DATABASES
配置项中。其默认配置在生成项目时已经自动生成。
#path 项目名称/settings.py
DATABASES = {
'default':