Python——django 学习笔记(一)

创建Django项目

  1. 打开code目录创建bookmanager的项目工程

    cd ~/Desktop/Code
    django-admin startproject bookmanager
    

    在这里插入图片描述

  2. 测试工程:运行bookmanager的项目工程

    python manage.py runserver
    
  3. 创建名为pay的子应用

    python manage.py startapp pay
    

在这里插入图片描述

pycharm 导入 Django项目

  1. 打开项目
在这里插入图片描述在这里插入图片描述
  1. 配置项目的python环境
    在这里插入图片描述

在pycharm使用django进行数据开发

  1. 在项目中添加子应用
    在这里插入图片描述

  2. 定义模型类
    打开models.py

    from django.db import models
    
    
    # Create your models here.
    # 准备书籍列表信息信息的模型类
    class BookInfo(models.Model):
        # 主键当前会自动生成
        # 创建字段,字段类型
        name = models.CharField(max_length=10)
    
    
    # 准备人物列表信息的模型类
    class PeopleInfo(models.Model):
        name = models.CharField(max_length=10)
        gender = models.BooleanField()
        # 外键约束,人物属于哪本书
        book = models.ForeignKey(BookInfo, on_delete=models.CASCADE)	# on_delete=models.CASCADE,   # 删除关联数据,与之关联也删除
    
  3. 模型迁移
    生成迁移文件

    python manage.py makemigration
    

    再迁移,此时生成数据库中的生成表

    python manage.py migrate
    
  4. 安装数据库插件,在setting打开plugins,搜索database sql 安装 Database Navigator

  5. 操作数据库

    1.模型继承自谁
    2.ORM对应关系
    	表 --> 类
    	字段 --> 属性
    
  6. 修改站点语言与时区
    打开settings.py

    # LANGUAGE_CODE = 'en-us'
    # 语言 中文
    LANGUAGE_CODE = 'zh-Hans'
    
    # TIME_ZONE = 'UTC'
    # 时区
    TIME_ZONE = 'Asia/shanghai'
    USE_I18N = True
    
  7. 创建站点超级用户
    在终端界面输入

    python manage.py createsuperuser
    

    在这里插入图片描述

  8. 登入站点 http://127.0.0.1:8000/admin/ (创建超级用户时的用户名和密码)

  9. 注册模型
    打开 子应用book的admin.py

    from django.contrib import admin
    from book.models import BookInfo
    
    
    # Register your models here.
    # 注册模型
    # admin.site.register(模型类)
    admin.site.register(BookInfo)
    

    在站点界面添加数据

    在这里插入图片描述在这里插入图片描述

    返回数据在页面显示
    在这里插入图片描述

  10. 视图和URL
    在子应用创建一个urls.py 用来接收用户请求
    打开子应用的views.py,返回一个响应

    from django.shortcuts import render
    from django.http import HttpRequest, HttpResponse
    # Create your views here.
    """
    视图
    1. 是一个python函数
    2. 函数的第一个参数就是请求
    3. 返回一个响应   响应是HttpResponse的实例对象或子类实例对象
    """
    
    
    def index(request):
        return HttpResponse('index')
    

    接着打开项目的urls.py,输入url请求的数据

    from django.contrib import admin
    from django.urls import path, include
    
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        # 比如请求的是:http://127.0.0.1:8000/index/
        path('', include('book.urls')),
    ]
    

    接着打开子应用创建好的urls.py,接受请求

    from django.conf.urls import url
    from book.views import index
    urlpatterns = [
        # url(正则,视图函数名)
        url(r'^index/$', index),
    ]
    

    其他子应用的视图和URL同理

  11. 模板template
    首先创建template目录和对应子应用目录以及index.html
    在这里插入图片描述
    然后打开项目目录下的settings.py设置接受模板目录路径
    在这里插入图片描述
    接着打开子应用的views.py,在子应用的视图中返回模板的响应
    在这里插入图片描述
    接着在模板中的index.html页面制定内容

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <!--{{name}}接收book.views中的数据-->
    <p>{{name}} is a beautiful girl</p>
    </body>
    </html>
    

引用数据库数据到页面

  1. 更改前面子应用的views.py

    from django.shortcuts import render
    from book.models import BookInfo
    from django.http import HttpRequest, HttpResponse
    # Create your views here.
    """
    视图
    1. 是一个python函数
    2. 函数的第一个参数就是请求
    3. 返回一个响应   响应是HttpResponse的实例对象或子类实例对象
    """
    
    
    def index(request):
        # 准备上下文,定义字典中的{测试数据}
    
        name = "Jane"
        # 在数据库中查询数据,
        # objects.all() 返回的是queryset对象,也就是查询对象集合
        # objects.get() 返回的是列表
        # objects是Manager类型的对象,定义在from django.db import models中,
        # 是默认的管理对象,也就是objects = Modes.Manage() 。
        books = BookInfo.objects.all()
        context = {
            'name': name,
            'books': books,
            }
        # 将上下文交给模板进行处理,再返回视图响应给客户端
        return render(request, 'book/index.html', context)
        # return HttpResponse('index')
    
  2. 更改模板下的index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <!--{{name}}接收book.views中的数据-->
    <p>{{name}} is a beautiful girl</p>
    <ul>
        # 遍历数据库中的书名
        {% for book in books %}
            <li>{{ book.name }}</li>
        {% endfor %}
    </ul>
    </body>
    </html>
    

流程图

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值