使用django创建和配置应用

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
应用实时监控服务-用户体验监控,每月100OCU免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 【6月更文挑战第2天】本文介绍在Linux环境下,安装Python3和Django,创建名为`library`的项目。创建超级用户并注册应用到`admin.py`。配置URL路由,创建模板文件`book_list.html`展示书籍列表。访问查看结果,确保已更新`ALLOWED_HOSTS`。如果遇到问题,如admin访问错误,可运行管理 shell 调整站点设置。

简介

本文介绍在Linux环境下,安装Python3和Django,创建名为library的项目。创建超级用户并注册应用到admin.py。配置URL路由,创建模板文件book_list.html展示书籍列表。访问查看结果,确保已更新ALLOWED_HOSTS。如果遇到问题,如admin访问错误,可运行管理 shell 调整站点设置。

1, linux 环境及项目创建

安装python3,django

执行安装:

apt install python3 && pip install django \~=3.1.0

mkdir code && cd code

mkdir library && library

初始化项目

django-admin startproject config .

2 项目文件解释

创建初期为空文件,有此文件的 文件夹被视为一个 python包

    __init__.py 

异步网关服务接口

    asgi.py  

包含项目的所有配置

    settings.py 

顶层 页面路由 控制

    urls.py  

代表Web服务器网关接口 并帮助 Django服务最终的网页

    wsgi.py

执行各种Django命令,例如运行本地Web服务器或创建新应用。

    manage.py

如果远程开发,需要添加 本地机器ip 或域名到允许列表

ALLOWED_HOSTS = ["127.0.0.1"]

    config/setting.py 

数据环境创建

python manage.py migrate   

在1999端口启动服务

python manage.py runserver 0.0.0.0:1999   

创建一个app 应用

python manage.py startapp books     

应用文件解释,创建的应用books 包含6个文件

内置的Django 应用程序Admin的配置文件

admin.py

是应用本身的配置文件

apps.py

目录存储迁移文件以进行数据库更改

migrations/

定义数据库模型的地方

models.py

应用测试文件

tests.py

处理Web应用程序的请求/响应逻辑的地方

views.py

3 将app 构建为整体web应用

  • 新建app配置

在config/setting 添加新的app到配置项 INSTALLED_APPS configuration

  • 数据库,视图,连接,模板 数据库创建及管理员

      books/models.py
      from django.db import models
    

一切开始的地方,创建应用类

    class Book(models.Model):
        title = models.CharField(max_length=250)
        subtitle = models.CharField(max_length=250)
        author = models.CharField(max_length=100)
        isbn = models.CharField(max_length=13)
        def __str__(self):
            return self.title

编辑模型models.py后 执行更新

   python manage.py makemigrations books && python manage.py migrate

管理员创建

  python manage.py createsuperuser
     username: admin
     password: admin123

4 配置注册应用程序

应用注册管理

    #admin.py
    from .models import Book
    admin.site.register(Book)

在setting.py中配置注册, 配置注册后需要重启服务

在1999端口启动服务

  python manage.py runserver 0.0.0.0:1999   

在/admin 管理页面创建一本书,一个项目,通常将其显示为网页,表示 创建4个文件。

控制如何显示 数据库中的数据,如果是列表形式则使用默认的ListView

 books/views,

用户访问页面时,将首先与此互动

 config/urls, 

与config/urls 互动后 将到达这里,使用BookListView

books/urls  

在此视图文件中,Book模型与ListView一起使用以列出所有页面模板

 books/template 

最后一步是创建我们的模板文件,以控制实际网页上的布局。

我们已经在视图中将其名称指定为book_list.html。

它有两个选择位置:默认情况下,Django模板加载器会在位置:

    books/templates/books/book_list.html。

我们也可以创建一个单独的改为在项目级别的模板目录中更新我们的config/settings.py文件以指向该目录

代码如下:

 cat books/views.py
    from django.shortcuts import render

在在此处创建视图

    from django.views.generic import ListView
    from .models import Book
    class BookListView(ListView):
        model = Book
        template_name = 'book_list.html'

 config/urls.py

如果用户访问 路由 /admin/ 则访问这个默认app admin

     from django.contrib import admin

include 将使用自定义的app books

    from django.urls import path, include 
    urlpatterns = [
        path('admin/', admin.site.urls),

根路径为 books 路由

        path('', include('books.urls')),  
    ]

查看 books/urls.py

    from django.urls import path
    from .views import BookListView

    urlpatterns = [
        path('', BookListView.as_view(), name='home'),
    ]

查看 books/templates/books/book_list.html

    <h1>All books</h1>
    {% for book in object_list %}
    <ul><li>Title: {
  { book.title }}</li> 
    <li>Subtitle: {
  { book.subtitle }}</li> 
    <li>Author: {
  { book.author }}</li> 
    <li>ISBN: {
  { book.isbn }}</li>
    </ul>
    {% endfor %}

重启服务,并访问根路径将列出所有图书 http://127.0.0.1:1999/

错误处理,如果 admin管理界面访问错误

$> ./manage.py shell
>>> from django.contrib.sites.models import Site
>>> site = Site.objects.create(domain='example.com', name='example.com')
>>> site.save()

5 小结

使用django-admin startproject config .初始化项目。项目将包含__init__.py, asgi.py, settings.py, urls.py, wsgi.pymanage.py等文件。

创建APPbooks,包含admin.py, apps.py, migrations/, models.py, tests.pyviews.py。在models.py定义Book模型,执行makemigrationsmigrate命令初始化数据库等基本操作。

目录
相关文章
|
4月前
|
前端开发 JavaScript UED
探索Python Django中的WebSocket集成:为前后端分离应用添加实时通信功能
通过在Django项目中集成Channels和WebSocket,我们能够为前后端分离的应用添加实时通信功能,实现诸如在线聊天、实时数据更新等交互式场景。这不仅增强了应用的功能性,也提升了用户体验。随着实时Web应用的日益普及,掌握Django Channels和WebSocket的集成将为开发者开启新的可能性,推动Web应用的发展迈向更高层次的实时性和交互性。
131 1
|
4月前
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
336 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
4月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
165 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
4月前
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
290 0
|
4月前
|
存储 开发框架 JSON
【查漏补缺】Django模型字段类型及其应用
【查漏补缺】Django模型字段类型及其应用
42 0
|
4月前
|
存储 安全 UED
GitHub OAuth认证的Django应用
GitHub OAuth认证的Django应用
51 0
|
6月前
|
中间件 数据库连接 UED
Django中间件秘籍:如何用几行代码让你的应用变得超级强大?
【8月更文挑战第31天】中间件是Django框架的核心特性,位于视图与HTTP服务器之间,允许全局处理请求和响应,增强Web应用功能。通过实现`MiddlewareMixin`类的方法,如`process_request`和`process_response`,可以轻松实现请求预处理或响应后处理。中间件应用场景广泛,包括用户认证、CSRF防护和数据库连接管理等。创建并配置中间件需将其加入`settings.py`的`MIDDLEWARE`列表,顺序决定执行优先级。合理利用中间件能提高代码重用性和应用性能,带来更好的用户体验。
74 0
|
7月前
|
API 数据库 数据安全/隐私保护
Django配置api、管理系统和视图
Django配置api、管理系统和视图
162 1
|
6月前
|
关系型数据库 MySQL 机器人
Django入门到放弃之数据库配置
Django入门到放弃之数据库配置
|
6月前
|
前端开发 JavaScript 安全
Django入门到放弃之常见配置及基本命令
Django入门到放弃之常见配置及基本命令