????????这里说的app其实和平时手机中安装的app不是同一个概念。Django项目中的app主要是指某一类功能类似的模块,例如用户管理系统中的账号管理是一个app,权限管理又是一个app。
创建app
? ? ? ? 创建app的方式非常简单,直接通过以下命令就可以:
# 最后跟的是app的名称
python manage.py startapp app01
????????执行成功后,就会在工程中出现对应名称的app:
│? db.sqlite3
│? manage.py
│
├─app01
│? │? admin.py 【django默认提供的admin后台管理】
│? │? apps.py ? 【app的启动类,一般不会改动】
│? │? models.py 【对数据库进行操作】
│? │? tests.py 【单元测试】
│? │? views.py 【从url.py指向的函数】
│? │? __init__.py
│? └─migrations 【数据库的变更记录】
│? ? ? ? ? __init__.py
└─mysite
? ? │? asgi.py
? ? │? settings.py
? ? │? urls.py
? ? │? wsgi.py
? ? │? __init__.py
????????app中会默认新建一些文件,比较重要的就views.py和models.py
注册app
????????创建完app后,其实和整个Django项目是没有关联起来的。我们需要手动注册,打开settings.py文件,里面有一个INSTALLED_APPS的组数,将我们新建的app添加进去:
# Application definition
INSTALLED_APPS = [
? ? 'django.contrib.admin',
? ? 'django.contrib.auth',
? ? 'django.contrib.contenttypes',
? ? 'django.contrib.sessions',
? ? 'django.contrib.messages',
? ? 'django.contrib.staticfiles',
? ? 'app01.apps.App01Config',
]
? ? ? ? 最底下一行就是新增加的。为什么要写成'app01.apps.App01Config',是为了指向apps.py中的启动类。
指向app
? ? ? ? 要让用户能够访问到创建的app,就需要从urls.py进行指向,例如这样修改urls.py:
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
? ??path('admin/', admin.site.urls),
? ? path('index/', views.index)
]
? ? ? ? 增加了第8行,当访问http://host/index/时,会执行views.py文件中的index函数。
? ? ? ? 上面指向了index函数,那肯定要到views.py中准备一个对应的函数:
from django.http import HttpResponse
? ? def index(request):? ?
? ? ? ? return HttpResponse('Welcome in app01!')
? ? ? ? 当访问index函数的时候,返回一段文言。
启动项目
启动django项目,可以直接在项目manage.py文件所在目录执行以下命令:
python manage.py runserver
? ? ? ? 项目默认会使用8000端口,如果想指定端口,可以在命令后面加一个参数:
# 指定使用1234端口python manage.py runserver 0.0.0.0:1234
? ? ? ? 如果不想手动执行命令,也可以在pycharm配置一下:
? ? ? ? 如果要指定端口,也是在Parameters中进行指定。
? ? ? ? 当然如果你使用的是专业版,是不需要自己在配置启动文件的,ide会自动给你生成一个启动文件,直接运行就可以。
? ? ? ? 最终的效果就是这样:
总结
? ? ? ? Django是非常完善的框架,按照提供的规则能非常简单的完成路由、请求、响应。