目录
基础命令
一、新建项目
二、配置
三、运行
Bootstrap下载
jQuery下载
#创建项目
django-admin startproject [项目名称]
#创建app应用
python manage.py startapp [app名称]
#运行
python manage.py runserver [端口号]
#创建数据模型和数据表结构
python manage.py makemigrations
python manage.py migrate
D:\DATA\PycharmProjects>django-admin startproject day
D:\DATA\PycharmProjects>cd day
D:\DATA\PycharmProjects\day>python manage.py startapp app01新建static、css、img、js、plugins、templates
将bootstrap-3.4.1-dist放入plugins中,把jquery-3.6.0.js放入js中
创建数据库day
写好models.py后需要在终端输入
D:\DATA\PycharmProjects\day>python manage.py makemigrations
D:\DATA\PycharmProjects\day>python manage.py migrate
练习文件结构
D:.
├─.idea
│ └─inspectionProfiles
├─app01
│ ├─migrations
│ │ └─__pycache__
│ ├─static
│ │ ├─css
│ │ ├─img
│ │ ├─js
│ │ └─plugins
│ │ └─bootstrap-3.4.1-dist
│ │ ├─css
│ │ ├─fonts
│ │ └─js
│ ├─templates
│ └─__pycache__
└─day└─__pycache__
1.settings.py
#添加app应用
'app01.apps.App01Config'#数据库设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'day',
'USER': 'root',
'PASSWORD': 'xxxx',
'HOST': 'localhost',
'PORT': 3306,
}
}
"""
Django settings for day project.Generated by 'django-admin startproject' using Django 4.1.For more information on this file, see
https://docs.djangoproject.com/en/4.1/topics/settings/For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.1/ref/settings/
"""from pathlib import Path# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-@v99r0!f(!5poa#9%#3$y*$-l8@o4_&evbp@dfl4_vwovb#r2x'# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = TrueALLOWED_HOSTS = []# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01.apps.App01Config'
]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',]ROOT_URLCONF = 'day.urls'TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [],'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',],},},
]WSGI_APPLICATION = 'day.wsgi.application'# Database
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
# }
# }DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'day','USER': 'root','PASSWORD': ' ','HOST': 'localhost','PORT': 3306,}
}# Password validation
# https://docs.djangoproject.com/en/4.1/ref/settings/#auth-password-validatorsAUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
]# Internationalization
# https://docs.djangoproject.com/en/4.1/topics/i18n/LANGUAGE_CODE = 'en-us'TIME_ZONE = 'UTC'USE_I18N = TrueUSE_TZ = True# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.1/howto/static-files/STATIC_URL = 'static/'# Default primary key field type
# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-fieldDEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
2.urls.py
"""day URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/4.1/topics/http/urls/
Examples:
Function views1. Add an import: from my_app import views2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views1. Add an import: from other_app.views import Home2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [path('depart/list/', views.depart_list),path('depart/add/', views.depart_add),path('depart/delete/', views.depart_delete),path('depart//edit/', views.depart_edit),]
3.views.py
from django.shortcuts import render,redirect
from app01 import modelsdef depart_list(reqeust):#数据库获取部门列表queryset=models.Department.objects.all()return render(reqeust,'depart_list.html',{'queryset':queryset})
def depart_add(reqeust):if reqeust.method=='GET':return render(reqeust,'depart_add.html')#获取用户提交的数据title=reqeust.POST.get("title")#保存到数据库models.Department.objects.create(title=title)#重定向到部门列表return redirect("/depart/list")
def depart_delete(reqeust):#获取idnid=reqeust.GET.get("nid")#删除models.Department.objects.filter(id=nid).delete()# 重定向到部门列表return redirect("/depart/list")
def depart_edit(reqeust,nid):if reqeust.method == 'GET':#根据nid,获取相关数据row_object=models.Department.objects.filter(id=nid).first()return render(reqeust,'depart_edit.html',{"row_object":row_object})# 获取用户提交的标题title = reqeust.POST.get("title")#根据id找到数据库中的数据并更新models.Department.objects.filter(id=nid).update(title=title)# 重定向到部门列表return redirect("/depart/list")
4.models.py
from django.db import modelsclass Department(models.Model):title = models.CharField(verbose_name='标题', max_length=32)
5. 在templates下创建相关html文件
5.1.depart_list.html
{% load static %}
Title
部门列表ID 名称 操作 {% for obj in queryset %}{{ obj.id }} {{ obj.title }} { obj.id }}/edit/">编辑{ obj.id }}">删除 {% endfor %}
5.2.depart_add.html
{% load static %}
Title
新建部门
5.3.depart_edit.html
{% load static %}
Title
修改部门
1.在终端启动
D:\DATA\PycharmProjects\day> python manage.py runserver 8000
Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).
November 25, 2022 - 13:17:56
Django version 4.1, using settings 'day.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
2.访问
http://127.0.0.1:8000/depart/list/
3.可以添加部门,删除部门
