使用django创建和配置应用

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 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命令初始化数据库等基本操作。

目录
相关文章
|
15天前
|
API 数据安全/隐私保护 网络架构
在django3中配置应用的权限
【6月更文挑战第9天】该文档介绍了Django REST Framework的权限管理。总结来说,本文介绍如何设置严格项目权限和如何通过自定义权限控制对特定资源的访问。
29 10
在django3中配置应用的权限
|
16天前
|
存储 JSON API
在django3应用中使用现代的JWT鉴权
【6月更文挑战第8天】本文介绍流行的鉴权方式,JSON Web Tokens (JWT) 是一种验证JSON数据所有者的机制,它是一个编码的、安全的字符串,包含可信任的数据且能加密签名。无状态的令牌认证允许客户端存储令牌并将其在每次请求。
26 8
在django3应用中使用现代的JWT鉴权
|
17天前
|
存储 安全 API
在django中创建项目时应用基础鉴权
【6月更文挑战第7天】本文探讨了在django中的API权限管理,即用户认证的两种方法:基础认证和会话认证。Django REST Framework默认使用会话认证,但也提供基础、令牌和JWT等其他选项。根据项目需求,应谨慎选择适合的认证方案。
63 3
在django中创建项目时应用基础鉴权
|
20天前
|
前端开发 JavaScript Linux
分离前后端react和django3构建的应用
【6月更文挑战第4天】在本文中,我们介绍了如何设置React前端并连接到Django后端。并讨论了前后端分离的好处,并计划扩展API以支持更多HTTP操作和用户身份验证功能。
53 5
分离前后端react和django3构建的应用
|
18天前
|
安全 API 数据安全/隐私保护
在django应用中使用权限控制
【6月更文挑战第6天】本文介绍在Django REST Framework中,项目权限通过默认设置如AllowAny、IsAuthenticated等管理。通过定制权限策略,确保了API的安全访问。
74 1
在django应用中使用权限控制
|
9天前
|
存储 流计算 Python
使用Django构建即时通讯应用的最简单方法
使用Django构建即时通讯应用的最简单方法
|
12天前
|
存储 安全 数据库
在django应用中使用会话提示用户体验
【6月更文挑战第12天】该文档介绍了Django中如何利用会话(session)为用户提供定制体验。通过会话,开发者能更好地管理和个性化匿名用户的网站体验。参考[Django官方文档](https://docs.djangoproject.com/en/4.0/top
20 2
|
14天前
|
API 数据库 网络架构
在django中应用视图和路由集
【6月更文挑战第10天】 本文介绍viewsets`和`Routers`是Django REST framework中用于简化API视图和路由的工具。它们提供了一个抽象层,允许用更少的代码替代多个相关视图,并能自动生成URL。定义`UserList`和`UserDetail`视图集,分别用于列表和详情展示。
14 3
|
19天前
|
安全 API 数据安全/隐私保护
在django3查看项目和编辑应用权限
【6月更文挑战第5天】本文介绍在Django REST Framework中,权限管理对于Web API的安全至关重要。总的来说,应实施严格的项目级别权限,并按需调整视图级别的权限策略,利用DRF的内置权限系统增强安全性。
33 2
|
20天前
|
JSON 测试技术 API
迁移django3配置新应用
【6月更文挑战第4天】本文介绍创建应用的具体步骤。首先创建名为`posts`的新Django应用,实现blog API功能。并说明如何编写测试用例,并执行迁移。建议为API版本控制,如v1和v2,以便逐步升级。
29 1