ORM初级实战简单的数据库交互

setting.py中:

  1 """
  2 Django settings for untitled3 project.
  3
  4 Generated by ‘django-admin startproject‘ using Django 2.0.7.
  5
  6 For more information on this file, see
  7 https://docs.djangoproject.com/en/2.0/topics/settings/
  8
  9 For the full list of settings and their values, see
 10 https://docs.djangoproject.com/en/2.0/ref/settings/
 11 """
 12
 13 import os
 14
 15 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 16 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 17
 18
 19 # Quick-start development settings - unsuitable for production
 20 # See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/
 21
 22 # SECURITY WARNING: keep the secret key used in production secret!
 23 SECRET_KEY = ‘3p4)ob=u_tpk_ha+5fs1x8vfn+(s5-92$(05%r04ny9v+dv=qp‘
 24
 25 # SECURITY WARNING: don‘t run with debug turned on in production!
 26 DEBUG = True
 27
 28 ALLOWED_HOSTS = []
 29
 30
 31 # Application definition
 32
 33 INSTALLED_APPS = [
 34     ‘django.contrib.admin‘,
 35     ‘django.contrib.auth‘,
 36     ‘django.contrib.contenttypes‘,
 37     ‘django.contrib.sessions‘,
 38     ‘django.contrib.messages‘,
 39     ‘django.contrib.staticfiles‘,
 40     ‘app01‘,
 41 ]
 42
 43 MIDDLEWARE = [
 44     ‘django.middleware.security.SecurityMiddleware‘,
 45     ‘django.contrib.sessions.middleware.SessionMiddleware‘,
 46     ‘django.middleware.common.CommonMiddleware‘,
 47     #‘django.middleware.csrf.CsrfViewMiddleware‘,
 48     ‘django.contrib.auth.middleware.AuthenticationMiddleware‘,
 49     ‘django.contrib.messages.middleware.MessageMiddleware‘,
 50     ‘django.middleware.clickjacking.XFrameOptionsMiddleware‘,
 51 ]
 52
 53 ROOT_URLCONF = ‘untitled3.urls‘
 54
 55 TEMPLATES = [
 56     {
 57         ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
 58         ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)]
 59         ,
 60         ‘APP_DIRS‘: True,
 61         ‘OPTIONS‘: {
 62             ‘context_processors‘: [
 63                 ‘django.template.context_processors.debug‘,
 64                 ‘django.template.context_processors.request‘,
 65                 ‘django.contrib.auth.context_processors.auth‘,
 66                 ‘django.contrib.messages.context_processors.messages‘,
 67             ],
 68         },
 69     },
 70 ]
 71
 72 WSGI_APPLICATION = ‘untitled3.wsgi.application‘
 73
 74
 75 # Database
 76 # https://docs.djangoproject.com/en/2.0/ref/settings/#databases
 77
 78 DATABASES = {
 79     ‘default‘: {
 80         ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
 81         ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
 82     }
 83 }
 84
 85
 86 # Password validation
 87 # https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators
 88
 89 AUTH_PASSWORD_VALIDATORS = [
 90     {
 91         ‘NAME‘: ‘django.contrib.auth.password_validation.UserAttributeSimilarityValidator‘,
 92     },
 93     {
 94         ‘NAME‘: ‘django.contrib.auth.password_validation.MinimumLengthValidator‘,
 95     },
 96     {
 97         ‘NAME‘: ‘django.contrib.auth.password_validation.CommonPasswordValidator‘,
 98     },
 99     {
100         ‘NAME‘: ‘django.contrib.auth.password_validation.NumericPasswordValidator‘,
101     },
102 ]
103
104
105 # Internationalization
106 # https://docs.djangoproject.com/en/2.0/topics/i18n/
107
108 LANGUAGE_CODE = ‘en-us‘
109
110 TIME_ZONE = ‘UTC‘
111
112 USE_I18N = True
113
114 USE_L10N = True
115
116 USE_TZ = True
117
118
119 # Static files (CSS, JavaScript, Images)
120 # https://docs.djangoproject.com/en/2.0/howto/static-files/
121
122 STATIC_URL = ‘/static/‘

models.py中(数据库创建表结构都在这里):

 1 from django.db import models
 2
 3 # Create your models here.
 4 class Business(models.Model):
 5     caption = models.CharField(max_length=32)
 6     code = models.CharField(max_length=32,null=True,default=‘SA‘)#default是设置默认值,null=True是数据库中允许这个字段为空
 7
 8 class Host(models.Model):
 9     nid = models.AutoField(primary_key=True) #设置主键并自增
10
11     hostname = models.CharField(max_length=32,db_index=True)#max_length设置字段最大长度
12
13     ip = models.GenericIPAddressField(protocol=‘ipv4‘,db_index=True)#db_index=True设置为索引
14
15     port = models.IntegerField()
16
17     b = models.ForeignKey(to="Business", to_field=‘id‘,on_delete=models.CASCADE)#报错加上了on_delete=models.CASCADE1
18     #设置外键关联Business中的id字段也可写成b = models.ForeignKey(‘Business‘,to_field=‘id‘)

urls.py中(路由都在这里):

 1 """untitled3 URL Configuration
 2
 3 The `urlpatterns` list routes URLs to views. For more information please see:
 4     https://docs.djangoproject.com/en/2.0/topics/http/urls/
 5 Examples:
 6 Function views
 7     1. Add an import:  from my_app import views
 8     2. Add a URL to urlpatterns:  path(‘‘, views.home, name=‘home‘)
 9 Class-based views
10     1. Add an import:  from other_app.views import Home
11     2. Add a URL to urlpatterns:  path(‘‘, Home.as_view(), name=‘home‘)
12 Including another URLconf
13     1. Import the include() function: from django.urls import include, path
14     2. Add a URL to urlpatterns:  path(‘blog/‘, include(‘blog.urls‘))
15 """
16 from django.contrib import admin
17 from django.urls import path
18 from app01 import views
19 from django.conf.urls import url
20
21 urlpatterns = [
22     path(‘admin/‘, admin.site.urls),
23     url(r‘^business/$‘,views.business),#$是结束符
24 ]

views.py中(主要业务逻辑都在这里):

 1 from django.shortcuts import render
 2 from app01 import models
 3 # Create your views here.
 4 def business(request):
 5
 6
 7     v1 = models.Business.objects.all()
 8
 9     #QuerySet
10     #[obj(id,caption,code),obj(id,caption,code),obj(id,caption,code)]  里面的小元素是对象
11
12     v2 = models.Business.objects.values(‘id‘, ‘caption‘)  # 拿固定列
13     # QuerySet
14     # [{‘id‘:1,‘caption‘:‘xx‘,‘code‘:‘da‘},{....},{.....}]  里面的小元素是字典
15
16     v3 = models.Business.objects.values_list(‘id‘, ‘code‘)
17     # QuerySet
18     # [(1,开发),(2,运维)]  里面的小元素是字典
19
20     return render(request,‘business.html‘,{‘v1‘:v1,‘v2‘:v2,‘v3‘:v3})   #注意:一定要加return   第一个参数request是对象不是字符串!不是字符串!不是字符串!

templates下的XXXX.html中(网页模板都放templates下):

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8
 9 <h1> 对象 </h1>
10 <ul>
11     {% for row in v1 %}
12
13      <li>   {{ row.caption }}-{{ row.code }}    </li>
14
15     {% endfor %}
16 </ul>
17
18 <h1> 字典 </h1>
19
20 <ul>
21     {% for row in v2 %}
22
23      <li>   {{ row.id }}-{{ row.caption }}    </li>
24
25     {% endfor %}
26 </ul>
27
28
29 <h1> 元组 </h1>
30
31 <ul>
32     {% for row in v3 %}
33
34      <li>   {{ row.0}}-{{ row.1 }}    </li>
35
36     {% endfor %}
37 </ul>
38
39 </body>
40 </html>

原文地址:https://www.cnblogs.com/topzhao/p/9307922.html

时间: 2024-10-13 07:32:18

ORM初级实战简单的数据库交互的相关文章

Django_简单的数据库交互案例

https://www.jianshu.com/p/bd0af02e59ba 一.页面展示 做一个简单的数据库交换的练习案例 页面.png 二.创建mysql 表 (1)创建django (2)创建app文件python mange.py startapp cmdb (3)创建数据库,在project同名的配置的 init.py文件中配置mysql连接 import pymysql pymysql.install_as_MySQLdb() (4)在setting.py 中配置mysql 连接,找

数据库交互的几个简单的对象

 以前曾经写过几篇关于.net对SQL SERVER编程中用到的几个对象,发现理解的不是很深刻,今天在这里在总结一下. 为何还会总结呢? 因为试想无论是做WEB开发还是桌面应用程序,都离不开与数据库打交道(增.删.改.查).无非就是这些操作,变化的只是前段页面,后台与数据库的交互是始终不变的. 无论是B/S还是所谓的C/S后台都是一回事,所以只要把后台数据库交互部分设置好了,工程就完成了一多半了. 常用对象 SqlConnection:表示一个到 SQL Server 数据库的打开的连接. 

java实现简单的数据库的增删查改,并布局交互界面

一.系统简介 1.1.简介  本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作. 二.功能设计 2.1  需求分析 21世纪是信息化时代,信息化已更快捷更方便为目标来融入各行各业.学校也不例外.当前,我国的学校正在加紧实施信息化建设,其中学生信息管理是相对重要的 一部分. 目前,社会上信息管理系统发展飞快,各个企事业单位都引入了信息化管理软件来管理自己日益增长的各种信息,学生信息管理

C#如何定制Excel界面并实现与数据库交互

Excel是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理.统计分析和辅助决策操作,广泛地应用于管理.统计财经.金融等众多领域.(另外,Excel还是伦敦一所会展中心的名称)..NET可以创建Excel Add-In对Excel进行功能扩展,这些扩展的功能包括自定义用户函数,自定义UI,与数据库进行数据交互等. 一 主要的Excel开发方式 1 VBA  VBA是一种Visual Basic的宏语言,它是最早的Office提供定制化的一种解决方案,VBA是VB的一个子集,和Vis

C#基础视频教程6.3 如何简单读写数据库

在继续往下做之前,我们需要把之前的代码尽可能的精简(会对后面很有好处,而且读者也应该仔细比对这一部分的代码和上一部分哪里真正得到了优化,从而提高编程水平). 首先数据库的操作类有哪些是可以做的更加普遍,变量名也通用的,至少要连接的目标数据库名称,目标工作薄,密码都应该是通用的,连接方法也是通用的,所以应该把连接到数据库的这个方法独立出来(我后面要写一个读写QuestionUser的类只要复制粘贴修修改改即可) ? 其次增查删改的几个方法,是否有必要做的更通用呢?这些方法要么输入类型要指定的结构体

对.net orm工具Dapper在多数据库方面的优化

Dapper是近2年异军突起的新ORM工具,它有ado.net般的高性能又有反射映射实体的灵活性,非常适合喜欢原生sql的程序员使用,而且它源码很小,十分轻便.我写本博客的目的不是为了介绍Dapper,而是要将我使用Dapper迁移数据库过程中遇到的bug和一些优化介绍给大家,Dapper在多数据库支持上有些问题,我做了以下5个方面的优化. 一:Dapper核心库存在一个重要的bug是各数据库默认返回类型不同造成的,像count,sum等一些函数在不同的数据库返回类型不同.比如 select c

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f

JSP与oracle数据库交互案例

本案例为咖啡销售情况录入查询系统 一.数据输入系统: 1.  设计输入信息页面 代码如下: <html> <head> </head> <body> <center><H1>咖啡管理系统--录入系统</H1></center> 欢迎来到录入系统<br /> <form action="inputaction.jsp" method="post" name

如何使用AEditor制作一个简单的H5交互页demo

转载自:http://www.alloyteam.com/2015/06/h5-jiao-hu-ye-bian-ji-qi-aeditor-jie-shao/ 本教程演示如何使用AEditor制作一个简单的H5交互页demo: 交互页demo地址: 点击打开H5交互页demo AEditor访问地址: http://aeditor.alloyteam.com Step1:设置页面背景颜色 首先我们设置页面的背景颜色,右击舞台点击“设置背景”: 然后在背景颜色中填上色值rgb(38, 61, 10