Django在视图中使用表单并和数据库进行数据交互

更新时间:2023-05-26 23:41:04 阅读: 评论:0

Django在视图中使⽤表单并和数据库进⾏数据交互
写在前⾯
博主近期有时间的话,⼀直在抽空看Django相关的项⽬,苦于没有web开发基础,对JavaScript也不熟悉,⼀直在从⼊门到放弃的边缘徘徊(其实已经放弃过⼏次了,如下图,⼀年前的笔记)。总体感受web开发要⽐其他技术栈难,前后端技术都有涉及。如果没有实体项⽬⽀撑的话,很难学下去。但不管怎样,学习都是⼀件痛苦的事情,坚持下去总会有收获。
本博客记录的是《Django web 应⽤开发实战》这本书第⼋章表单与模型中的相关内容,主要内容是表单与数据库的交互。编译环境如下:
Python3.7
pycharm2020.1专业版(社区版应该是不⽀持Django项⽬调试的)
项⽬结构及代码
项⽬结构
在pycharm中建⽴Django项⽬后,会⾃动⽣成⼀些基础的⽂件,如ttings.py,urls.py等等,这些基础的东西,不再记录,直接上我的项⽬结构图。shortgi
上图中左侧为项⽬结构,1为项⽬应⽤,也叫APP,2是Django的项⽬设置,3是项⽬的模板,主要是放⽹页的。
路由设置
路由设置是Django项⽬必须的,在新建项⽬是,在index⽬录、MyDjango⽬录下⾯⽣成了urls.py⽂件,⾥⾯默认有项⽬的路由地址,可以根据项⽬情况更改,我这⾥上⼀下我的路由设置。
收敛性# MyDjango/urls.py
"""MyDjango URL Configuration
The `urlpatterns` list routes URLs to views. For more information plea e:
/en/3.0/topics/http/urls/
Examples:
Function views
1. Add an import:  from my_app import views
2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-bad views
1. Add an import:  from other_app.views import Home
2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
ib import admin
from django.urls import path, include
urlpatterns =[
path('admin/', admin.site.urls),
path('', include(('index.urls','index'), namespace='index'))
]
# index/urls.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
# author:HP
# datetime:2021/6/15 15:35
from django.urls import path, re_path
from.views import*
urlpatterns =[
path('', index, name='index'),
]
数据库配置
数据库的配置,以及模板的设置等内容都在ttings.py⽂件中,在项⽬⽣成的时候,⾃动⽣成。
数据库设置在DATABASE字典中进⾏设置,默认的是sqlite3,我也没改。这⾥可以同时配置多个数据库,具体不再记录。看代码:
"""
四六级满分多少
Django ttings for MyDjango project.
Generated by 'django-admin startproject' using Django 3.0.8.
For more information on this file, e
/en/3.0/topics/ttings/
For the full list of ttings and their values, e
/en/3.0/ref/ttings/
"""
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development ttings - unsuitable for production
# See /en/3.0/howto/deployment/checklist/
# SECURITY WARNING: keep the cret key ud in production cret!
SECRET_KEY ='6##c(097i%=eyr-uy!&m7yk)+ar+_ayjghl(p#&(xb%$u6*32s'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG =True
ALLOWED_HOSTS =[]
# Application definition
INSTALLED_APPS =[
'ib.admin',
wolley
'ib.auth',
'ttypes',
'ib.ssions',
'ssages',
'ib.staticfiles',
# add a new app index
'index',
'mydefined'
]
MIDDLEWARE =[
'django.middleware.curity.SecurityMiddleware',
'ib.ssions.middleware.SessionMiddleware',
'CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'ib.auth.middleware.AuthenticationMiddleware',
'ssages.middleware.MessageMiddleware',
leisuretime'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF ='MyDjango.urls'
TEMPLATES =[
{
耳子'BACKEND':'plate.backends.django.DjangoTemplates', 'DIRS':[os.path.join(BASE_DIR,'templates')]
,
'APP_DIRS':True,
'OPTIONS':{
'context_processors':[
business是什么意思
't_processors.debug',
'quest',
't_processors.auth',
'ssages',
],
},
},
]
'''
{
'BACKEND': 'plate.backends.jinja2.Jinja2',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'environment': 'vironment'
},
},
'''
WSGI_APPLICATION ='MyDjango.wsgi.application'
# Databa
# /en/3.0/ref/ttings/#databas
DATABASES ={
'default':{
'ENGINE':'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR,'db.sqlite3'),
}
}
# Password validation
# /en/3.0/ref/ttings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS =[
{
'NAME':'ib.auth.password_validation.UrAttributeSimilarityValidator',
},
英语程序{
'NAME':'ib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME':'ib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME':'ib.auth.password_validation.NumericPasswordValidator',
},上海中学国际部
]
# Internationalization
# /en/3.0/topics/i18n/
LANGUAGE_CODE ='en-us'
TIME_ZONE ='UTC'
USE_I18N =True
estate
USE_L10N =True
USE_TZ =True
# Static files (CSS, JavaScript, Images)
# /en/3.0/howto/static-files/
STATIC_URL ='/static/'
STATICFILES_DIRS =[
os.path.join(BASE_DIR,'static')
]
定义模型
怎么来解释“模型”这个东西,我感觉挺难解释清楚,⾸先得解释ORM框架,它是⼀种程序技术,⽤来实现⾯向对象编程语⾔中不同类型系统的数据之间的转换。这篇博客涉及到前端和后端的数据交互,那么⾸先你得有个数据表,数据表是通过模型来创建的。怎么创建呢,就是在项⽬应⽤⾥⾯创建mode
ls.py这个⽂件,然后在这个⽂件中写⼏个类,⽤这个类来⽣成数据表,先看看这个项⽬的models.py代码。

本文发布于:2023-05-26 23:41:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/788302.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   模型   开发   设置   内容   技术   数据表
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图