赞
踩
更多Python学习内容:ipengtao.com
大家好,我是彭涛,今天为大家分享 Python Django 连接 PostgreSQL 操作实例,全文3500字,阅读大约10分钟
在Web开发中,使用Django连接到PostgreSQL数据库是一种常见的选择。本文将详细介绍如何在Django项目中连接到PostgreSQL数据库,并提供丰富的示例代码。
首先,确保已经安装了Django和psycopg2
库,它是Django连接PostgreSQL所需的驱动。
pip install Django psycopg2
在Django项目的settings.py
文件中,配置数据库连接信息,将ENGINE
设置为django.db.backends.postgresql
, 并填写NAME
, USER
, PASSWORD
, HOST
和PORT
等信息。
- # settings.py
-
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.postgresql',
- 'NAME': 'your_database_name',
- 'USER': 'your_database_user',
- 'PASSWORD': 'your_database_password',
- 'HOST': 'localhost',
- 'PORT': '5432',
- }
- }
运行以下命令,创建数据库迁移并应用。
- python manage.py makemigrations
- python manage.py migrate
创建一个简单的模型,以演示数据库操作。
- # models.py
-
- from django.db import models
-
- class Book(models.Model):
- title = models.CharField(max_length=100)
- author = models.CharField(max_length=50)
-
- def __str__(self):
- return self.title
在Django shell中,演示如何进行数据库操作。
python manage.py shell
- # 在Django shell中
-
- # 导入模型
- from your_app.models import Book
-
- # 创建新书
- new_book = Book(title='Django Essentials', author='John Doe')
- new_book.save()
-
- # 查询所有书籍
- all_books = Book.objects.all()
- print(all_books)
在Django项目中创建视图和模板,以展示从数据库中检索数据的方式。
- # views.py
-
- from django.shortcuts import render
- from .models import Book
-
- def book_list(request):
- books = Book.objects.all()
- return render(request, 'book_list.html', {'books': books})
- <!-- book_list.html -->
-
- {% extends 'base.html' %}
-
- {% block content %}
- <h2>Book List</h2>
- <ul>
- {% for book in books %}
- <li>{{ book.title }} by {{ book.author }}</li>
- {% endfor %}
- </ul>
- {% endblock %}
最后,运行Django开发服务器并查看连接到PostgreSQL的Web页面。
python manage.py runserver
访问http://127.0.0.1:8000/
,查看包含数据库中书籍信息的页面。
在实际开发中,可能需要对模型进行更改。演示如何通过数据库迁移来处理模型变更。
- # models.py
-
- from django.db import models
-
- class Book(models.Model):
- title = models.CharField(max_length=100)
- author = models.CharField(max_length=50)
- published_date = models.DateField()
-
- def __str__(self):
- return self.title
运行以下命令进行迁移:
- python manage.py makemigrations
- python manage.py migrate
使用Django自带的管理后台,轻松管理数据库记录。
- # admin.py
-
- from django.contrib import admin
- from .models import Book
-
- admin.site.register(Book)
运行服务器,访问http://127.0.0.1:8000/admin/
,使用创建的超级用户账号登录,即可管理数据库中的书籍记录。
展示如何使用Django表单和视图来实现用户添加书籍的功能。
- # forms.py
-
- from django import forms
- from .models import Book
-
- class BookForm(forms.ModelForm):
- class Meta:
- model = Book
- fields = ['title', 'author', 'published_date']
- # views.py
-
- from django.shortcuts import render, redirect
- from .models import Book
- from .forms import BookForm
-
- def add_book(request):
- if request.method == 'POST':
- form = BookForm(request.POST)
- if form.is_valid():
- form.save()
- return redirect('book_list')
- else:
- form = BookForm()
- return render(request, 'add_book.html', {'form': form})
- <!-- add_book.html -->
-
- {% extends 'base.html' %}
-
- {% block content %}
- <h2>Add Book</h2>
- <form method="post">
- {% csrf_token %}
- {{ form.as_p }}
- <button type="submit">Add Book</button>
- </form>
- {% endblock %}
在urls.py
中添加新的URL模式,使用户能够访问添加书籍的页面。
- # urls.py
-
- from django.urls import path
- from .views import book_list, add_book
-
- urlpatterns = [
- path('books/', book_list, name='book_list'),
- path('add_book/', add_book, name='add_book'),
- ]
在本文中,深入研究了如何在Django项目中连接到PostgreSQL数据库,并提供了详尽的示例代码,覆盖了从配置数据库连接到实现基本的Web应用功能的全过程。首先,介绍了安装必要的库,包括Django和psycopg2
,并详细说明了在settings.py
中配置数据库连接的步骤。
接着,创建了一个简单的模型,展示了如何使用Django的迁移系统来初始化和更新数据库结构。通过在Django shell中演示数据库操作,大家可以清晰了解如何进行常见的增删改查操作。还深入探讨了Django的视图、模板和管理后台的使用,演示了如何以用户友好的方式展示和管理数据库中的数据。此外,引入了Django表单和视图的概念,展示了如何通过表单让用户添加新的数据库记录。
总体而言,本文提供了一个全面而详实的教程,适用于初学者和有一定经验的开发者。通过这些示例,大家将获得在Django中连接和操作PostgreSQL数据库的实际经验,为构建功能齐全的Web应用奠定了坚实的基础。
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!
更多Python学习内容:ipengtao.com
干货笔记整理
最经典的编程教材《Think Python》开源中文版.PDF下载
点击“阅读原文”,获取更多学习内容
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。