Django练习
创始人
2024-02-15 19:24:01
0

目录

基础命令 

一、新建项目

二、配置

三、运行


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


部门列表
{% for obj in queryset %}{% endfor %}
ID名称操作
{{ obj.id }}{{ obj.title }}{ obj.id }}/edit/">编辑{ obj.id }}">删除

5.2.depart_add.html

{% load static %}


Title



新建部门

{% csrf_token %}

5.3.depart_edit.html

{% load static %}


Title



修改部门

{% csrf_token %}
{ row_object.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.可以添加部门,删除部门 

相关内容

热门资讯

山东诸城偷排危废致4死案一名主... 山东潍坊诸城市舜王街道一厂房深夜偷排危废,产生硫化氢等大量有毒气体,导致4人死亡、3人重伤以及32人...
男子称在邯郸一超市购买的猪肉检... 近日,河北省邯郸市丛台区一消费者王先生反映,其在阳光超市龙湖店购买的猪肉,食用时感觉有异样。随后,他...
市场监管总局:今年首次以法律形... 市场监管总局副局长柳军23日在专题发布会上介绍,2025年,全国食品安全形势总体平稳。市场监管总局坚...
关于健全对刑事案件犯罪嫌疑人、... “两高一部”发布《关于健全对刑事案件犯罪嫌疑人、被告人身份审查工作机制的意见》 为准确、及时查明案件...
完善幼儿园收费政策 三部门发通... 中新网12月23日电 据国家发展和改革委员会网站消息,23日,国家发展改革委、教育部、财政部发布关于...
男子4年强奸继女六七十次,被判... 日前,河北省石家庄市栾城区人民法院在中国裁判文书网公开了一份刑事判决书,男子刘冬(化名)在4年间竟六...
合肥一烤肉店回应宠物狗上桌吃饭... 12月22日,安徽合肥一家烤肉店有宠物狗上桌吃饭,餐桌上的餐盘里放有食物,宠物狗在不断啃食生肉。 2...
中国人民银行关于实施一次性信用... 中国人民银行上海总部,各省、自治区、直辖市及计划单列市分行,征信中心;国家开发银行,各政策性银行、国...
徐杰20分萨林杰32+11 广... 【搜狐体育战报】北京时间12月23日CBA常规赛第5轮,客场作战的广东东阳光以93-85击败广州朗肽...
完善幼儿园收费政策,三部门发通... 今天(12月23日),国家发展改革委、教育部、财政部发布关于完善幼儿园收费政策的通知,全文如下: 各...