Django项目创建app

        这里说的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配置一下:

配置django启动

        如果要指定端口,也是在Parameters中进行指定。

        当然如果你使用的是专业版,是不需要自己在配置启动文件的,ide会自动给你生成一个启动文件,直接运行就可以。

        最终的效果就是这样:

访问http://host/index/

总结

        Django是非常完善的框架,按照提供的规则能非常简单的完成路由、请求、响应。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容