Django 创建项目

目录

  环境:

  Django 参看django版本

  Django 安装

  Django 创建项目

  Django 创建应用

  Django 创建一个视图

环境:

  1. Ubuntu20.04

  2. django version: 3.2.10

  3. python version:3.8

Django 模型

  Django的MTV模式本质上和MVC是一样的。

1. Django的MTV分别是值:

  1. M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
  2. T 代表模板 (Template):负责如何把页面展示给用户(html)。
  3. V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。

2. MVC模型个代表的意思:

  1. M模型负责业务对象与数据库的映射(ORM)

  2. V视图负责与用户的交互(页面)

  3. C控制器接受用户的输入调用模型和视图完成用户的请求

查看Django的版本

python3 -m django --version

Django的安装

Django Windows

  1. Django下载地址

https://www.djangoproject.com/download/

  2. 命令行查看是否安装成功

>>> import django
>>> django.get_version()

Django Linux(Ubuntu)

  0. 安装django指定版本

pip3 install Django==3.2.10

  1.pip命令安装

pip3 install Django

  2. 源码安装

  源码下载包: https://www.djangoproject.com/download/

  输入一下命令安装:

tar xzvf Django-X.Y.tar.gz    # 解压下载包
cd Django-X.Y                 # 进入 Django 目录
python3 setup.py install       # 执行安装命令

Django 创建项目

1. 命令行创建Django项目(cd 到想要创建项目的folder下)

# django-admin startproject 项目名
django-admin startproject myproject

2. 项目目录

chromeVirtWe
├── chromeVirtWeb │   ├── asgi.py │   ├── __init__.py │   ├── settings.py │   ├── urls.py │   └── wsgi.py └── manage.py

3. 项目文件目录说明

4. 检验项目是否创建成功(去除黑色的部分,剩下的log为成功)

python3 manage.py runserver

  log:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
December 31, 2021 - 07:09:29
Django version 3.2.10, using settings 'chromeVirtWeb.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

  解决方案:它可以让我们在修改Model后可以在不影响现有数据的前提下重建表结构。

python manage.py migrate

Django 创建应用

1. 创建应用

# 第一种方式
django-admin startapp app01

# 第二种方式
python manage.py stratapp app01

2. 命令行启动项目

python manage.py runserver 127.0.0.1:8080

3. 关闭项目

Ctrl + C

注意:

  1. 命令行创建的应用要在Django项目中的settings.py文件中的INSTALL_APPS = [...]进行注册

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config'  # 该行进行注册
]

  2. 命令行创建的项目, 不会自动创建templates模板文件夹, 需要自己手动创建, 并需要在settings.py文件中注册该文件路径

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(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',
            ],
        },
    },
]

Django 创建一个视图

1. 在app/views.py中,添加下面的code

from django.http import HttpResponse


def index(request):
    return HttpResponse("hello, world")

2. 如果想看到”hello,world“,我们需要将url映射到给函数,需要在app目录下创建一个URLconf(urls.py), 在该文件中输入下面code。

from django.urls import path

from . import views


urlpatterns = [
    path('', views.index, name='index'),   
]

3. 在项目的同名目录下的urls.py文件中填入应用中我们创建的url模块。

from django.contrib import admin
from django.urls imprt include, path


urlpatterns = [
    path('admin/', admin.site.urls),
    path('chromeVir/', include('chromeVirt.urls')),
]

函数include()允许引用其他URLconf(URL配置文件),当Django遇到include()函数后,

它会截断与此项匹配的url部分,并将剩余的字符串发送到URLconf做进一步处理。

4. 运行项目,查看项目是否正常工作;访问浏览器 http://localhost:8080/app/,然后你可以看到”hello,world“

python3 manage.py runserver

5.  path() 函数参数含义:

route:route是一个匹配url的准则(类似正则匹配)。Django响应请求时,从urlpatterns列表中的第一个开始,从上到下依次匹配知道匹配到要找的项。

  列如:http://localhost:8080/app/, 会尝试匹配app/

     http://localhost:8080/app/articles/,也会匹配到app/

view:Django匹配到一个准则后,就会调用view参数传入的视图函数,并且给该视图函数传入HttpResponse对象作为函数的第一个参数,且是以关键字的形式传入。

kwargs:任意关键字参数作为字典传给视图函数。

name:给URL取名,使其在Django的任意位置唯一地引用它,尤其在模板(template)中。

  特性:允许你只在一个文件就能全局地修改某个URL(path中的view???)模式。

 

posted @ 2021-12-31 20:51  zhuang6  阅读(227)  评论(0)    收藏  举报