python web應(yīng)用程序之Django數(shù)據(jù)庫詳解
python-web應(yīng)用程序-Django數(shù)據(jù)庫-操作表
原始方法:
import pymysql #1.鏈接mysql conn = pymysql.connect(host='127.0.0.1',port = 2206,user = 'root',passwd = 'root123',charset = 'utf8',db = 'unicom') cursor = conn.cursor(cursor = pymysql.cursors.DictCursor) #2.發(fā)送指令 cursor.execute('insert into admin(username,password,mobile)values('yulin','123456','13888888888')') conn.commit() #3.關(guān)閉 cursor.close() conn.close()
- 游標(biāo)(Cursor)對象是數(shù)據(jù)庫編程中的一個重要概念。它提供了一種從數(shù)據(jù)庫結(jié)果集中逐行讀取數(shù)據(jù)的方法。游標(biāo)就像數(shù)據(jù)庫服務(wù)器和應(yīng)用程序之間的橋梁,允許應(yīng)用程序執(zhí)行SQL語句并處理返回的結(jié)果集。
游標(biāo)的主要作用包括:
- 執(zhí)行SQL語句:通過游標(biāo)執(zhí)行SQL查詢、插入、更新和刪除操作。
- 檢索結(jié)果集:在SELECT查詢后,通過游標(biāo)逐行提取結(jié)果。
- 管理事務(wù):游標(biāo)通常用于事務(wù)管理,如提交或回滾事務(wù)。
Django開發(fā)操作數(shù)據(jù)庫
內(nèi)部提供了ORM框架
原始方法是寫代碼,使用pymysql使用數(shù)據(jù)庫
Django的ORM框架則集成了pymysql或mysqlclient或MysqlDB,在其之上寫代碼,將會更加簡潔
安裝mysqlclinet
pip install mysqlclient
使用ORM
創(chuàng)建、修改、刪除數(shù)據(jù)庫中的表(不用你寫SQL語句),但無法創(chuàng)建數(shù)據(jù)庫
1.啟動mysql服務(wù)
2.創(chuàng)建新的數(shù)據(jù)庫pymysql
3.Django鏈接數(shù)據(jù)庫-settings.py中修改配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } }
上述鏈接的是sqlite3 還可以鏈接mysql如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'pymysql',#數(shù)據(jù)庫名字 'USER':'root',#數(shù)據(jù)庫user 'PASSWORD':'123456',#數(shù)據(jù)庫密碼 'HOST':'127.0.0.1',#本地服務(wù)器可以是遠(yuǎn)程數(shù)據(jù)庫 'PORT':'3306'#數(shù)據(jù)庫端口號 } }
甚至可以鏈接postgresql、oracle等數(shù)據(jù)庫
操作表(寫在models.py文件中)
創(chuàng)建表
1.需要根據(jù)數(shù)據(jù)庫來添加類與表結(jié)構(gòu)對應(yīng)
在models.py:
from django.db import models # Create your models here. class UserInfo(models.Model): name = models.CharField(max_length=10) password = models.CharField(max_length = 40) age = models.IntegerField(max_length = 3)
2.在命令行執(zhí)行下列命令后會Django會根據(jù)類自動創(chuàng)建表
python manage.py makemigrations python manage.py migrate
注意,如果創(chuàng)建了一個表后還需要增加字段,需要給默認(rèn)值(最好給NULL)。
name = models.CharField(null = True,blank = True)
name = models.CharField(null = True,blank = True)
到此這篇關(guān)于python web應(yīng)用程序之Django數(shù)據(jù)庫詳解的文章就介紹到這了,更多相關(guān)python Django數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用python和Django完成博客數(shù)據(jù)庫的遷移方法
- python django 增刪改查操作 數(shù)據(jù)庫Mysql
- Python的Django框架中使用SQLAlchemy操作數(shù)據(jù)庫的教程
- 在Python的Django框架中更新數(shù)據(jù)庫數(shù)據(jù)的方法
- Python的Django框架中的數(shù)據(jù)庫配置指南
- Python的Django框架可適配的各種數(shù)據(jù)庫介紹
- 用實例詳解Python中的Django框架中prefetch_related()函數(shù)對數(shù)據(jù)庫查詢的優(yōu)化
相關(guān)文章
Pycharm 2020.1 版配置優(yōu)化的詳細(xì)教程
這篇文章主要介紹了更新Pycharm 2020.1 版配置優(yōu)化的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08Tensorflow tf.nn.depthwise_conv2d如何實現(xiàn)深度卷積的
這篇文章主要介紹了Tensorflow tf.nn.depthwise_conv2d如何實現(xiàn)深度卷積的,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04利用Python找出序列中出現(xiàn)最多的元素示例代碼
這篇文章主要給大家介紹了關(guān)于利用Python找出序列中出現(xiàn)最多的元素的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12