python练习-Django web入门

news2024/12/27 12:56:16
python -m pip install --user requests

使用API调用请求数据

  • 处理API响应
import requests


class Requests:

    def request(self):
        url = "https://www.toutiao.com/stream/widget/local_weather/data/?city=北京"
        headers = {"Accept": "application/json; charset=utf-8"}
        r = requests.get(url, headers=headers)
        # 200
        print(f"Status code:{r.status_code}")
        response_dict=r.json()
        # data
        print(response_dict.keys())
        # 北京
        print(response_dict['data']['city'])
        # 雾
        print(response_dict['data']['weather']['current_condition'])

Requests().request()

Django项目创建

# 1、创建虚拟环境
python -m venv venv

# 2、激活虚拟环境
## win
venv\Scripts\activate

## linux macOS
source venv/bin/activate

# 3、安装 Django
pip install django

# 4、创建 Django 项目
django-admin startproject myproject

在进入到myproject运行,因为使用manage.py
python manage.py startapp appppp(应用程序名)

# 6、在项目目录(myproject)修改settings.py 添加应用程序
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'appppp',  # 添加你的应用
]

# 7、定义模型 
# appppp 下的models.py

from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()

# 8、创建迁移文件
python manage.py makemigrations

# 9、应用迁移文件
运行 migrate 命令将迁移文件应用到数据库
python manage.py migrate


# 10、创建视图
应用程序目录(appppp)下的views.py
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world!")

# 11、配置 URL
应用程序目录(appppp)下创建urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]


在项目目录(myproject)下urls.py添加路径映射
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    # path('', views.index, name='index'),
    path('appppp/', include('appppp.urls')),
]

# 12、运行
python manage.py runserver

http://127.0.0.1:8000/appppp/

练习项目

  • 定义模型 (models.py)
from django.db import models


# Book 类继承自 models.Model。这意味着 Book 是一个 Django 模型,Django 会为它创建一个对应的数据库表
class Book(models.Model):
    # title 字段 
    # CharField 是一个字符字段,用于存储文本数据
    # max_length=100 表示这个字段的最大长度是 100 个字符
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    # DateField 是一个日期字段,用于存储日期数据
    publication_date = models.DateField()

    # __str__ 方法定义了当一个 Book 对象被转换为字符串时,应该返回什么内容
    def __str__(self):
        return self.title
title = models.CharField(
    max_length=100,
    null=False,
    blank=False,
    default='',
    unique=True,
    help_text='Enter the title of the book.'
)

max_length:
    作用:指定字段的最大长度。
    适用范围:CharField 和 TextField。
    示例:max_length=100 表示 title 字段的最大长度为 100 个字符。
    数据库影响:在数据库中,这个字段会被创建为一个固定长度的字符串字段,最大长度为 100。
null:
    作用:指定数据库中该字段是否可以为空。
    适用范围:所有字段类型。
    示例:null=False 表示数据库中 title 字段不能为空。
    数据库影响:在数据库中,这个字段会被创建为 NOT NULL。
blank:
    作用:指定表单验证时该字段是否可以为空。
    适用范围:所有字段类型。
    示例:blank=False 表示表单中 title 字段不能为空。
    表单影响:在表单验证时,如果 blank=False,则表单提交时该字段必须填写。
default:
    作用:指定字段的默认值。
    适用范围:所有字段类型。
    示例:default='' 表示 title 字段的默认值为空字符串。
    数据库影响:在数据库中,如果插入数据时没有提供 title 字段的值,则默认值为空字符串。
unique:
    作用:指定字段值是否必须唯一。
    适用范围:所有字段类型。
    示例:unique=True 表示 title 字段的值必须唯一。
    数据库影响:在数据库中,这个字段会被创建为一个唯一索引,确保每个值都是唯一的。
help_text:
    作用:指定表单中的帮助文本。
    适用范围:所有字段类型。
    示例:help_text='Enter the title of the book.' 表示在表单中显示的帮助文本为 "Enter the title of the book."。
    表单影响:在表单中,这个帮助文本会显示在字段旁边,提供用户指导
python manage.py makemigrations
python manage.py migrate
  • 创建视图 (views.py)
from django.shortcuts import render
from .models import Book

def book_list(request):
    books = Book.objects.all()
    # 使用 render 函数将请求、模板名称和上下文数据组合在一起,返回一个渲染后的 HTTP 响应
    # {'books': books} 是传递给模板的上下文数据,key与模板中变量名一致,value为数据
    return render(request, 'books/book_list.html', {'books': books})

books = Book.objects.all()

all(): 返回一个包含所有记录的 QuerySet。
filter(**kwargs): 返回一个包含满足条件的记录的 QuerySet。
exclude(**kwargs): 返回一个包含不满足条件的记录的 QuerySet。
get(**kwargs): 返回一个满足条件的单个记录,如果找不到或找到多个记录,会抛出异常。
create(**kwargs): 创建并保存一个新的记录。
get_or_create(**kwargs): 获取一个满足条件的记录,如果不存在则创建一个新的记录。
update_or_create(**kwargs): 更新一个满足条件的记录,如果不存在则创建一个新的记录。
count(): 返回记录的数量。
first(): 返回第一个记录,如果不存在则返回 None。
last(): 返回最后一个记录,如果不存在则返回 None。
order_by(*fields): 按指定字段排序记录。
values(*fields): 返回一个包含指定字段的字典的 QuerySet。
values_list(*fields, flat=False): 返回一个包含指定字段的元组的 QuerySet,如果 flat=True 且只有一个字段,则返回一个扁平的列表。
  • 定义URL
from django.urls import path
from . import views

urlpatterns = [
    # views 是一个模块(通常是 views.py 文件),book_list 是该模块中的一个函数
    # name=book_list 就是个URL 模式的名称
    path('books/', views.book_list, name='book_list'),
]
  • 创建模板 (book_list.html)
<!DOCTYPE html>
<html>
  <head>
    <title>Book List</title>
  </head>
  <body>
    <h1>Books</h1>
    <ul>
      {% for book in books %}
      <li>{{ book.title }} - {{ book.author }}, Published: {{ book.publication_date }}</li>
      {% endfor %}
    </ul>
  </body>
</html>
  • 创建超级用户添加测试数据
python manage.py createsuperuser
from .models import Book

admin.site.register(Book)

  • 在项目(非应用程序)urls.py下添加映射
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('appppp.urls')),
]
  • 启动
python manage.py runserver

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2239390.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

元器件封装

元器件封装类型 为什么越来越多用贴片元件&#xff0c;而不是插件元件 为什么越来越多用贴片元件&#xff0c;而不是插件元件 1.体积小、质量小、容易保存和运输&#xff1b; 2.容易焊接和拆卸。抗震效果好。 贴片元件不用过孔&#xff0c;用锡少。直插元件最麻烦的就是拆卸&a…

[SaaS] 数禾科技 AIGC生成营销素材

https://zhuanlan.zhihu.com/p/923637935https://zhuanlan.zhihu.com/p/923637935

自顶向下逐步求精解决LeetCode第3307题找出第K个字符II题

3307.找出第K个字符II 难度&#xff1a;困难 问题描述&#xff1a; Alice和Bob正在玩一个游戏。最初&#xff0c;Alice有一个字符串word"a"。 给定一个正整数k和一个整数数组operations&#xff0c;其中operations[i]表示第i次操作的类型。 现在Bob将要求Alice按…

v-html 富文本中图片使用element-ui image-viewer组件实现预览,并且阻止滚动条

效果 导入组件 import ElImageViewer from "element-ui/packages/image/src/image-viewer"; components:{ ElImageViewer },模板使用组件 <el-image-viewerv-if"isShowPics":on-close"closeViewer":url-list"srcList"/>定义两…

Redis - 哨兵(Sentinel)

Redis 的主从复制模式下&#xff0c;⼀旦主节点由于故障不能提供服务&#xff0c;需要⼈⼯进⾏主从切换&#xff0c;同时⼤量 的客⼾端需要被通知切换到新的主节点上&#xff0c;对于上了⼀定规模的应⽤来说&#xff0c;这种⽅案是⽆法接受的&#xff0c; 于是Redis从2.8开始提…

使用wordpress搭建简易的信息查询系统

背景 当前有这样的一个需求&#xff0c;要实现让客户能够自助登录系统查询一些个人的信息&#xff0c;市面上没有特别符合我的需求的产品&#xff0c;经过一段时间的研究&#xff0c;想出了一个用wordpress实现简易信息查询系统&#xff0c;有两种方式。 方式一&#xff1a;使…

探索 Python HTTP 的瑞士军刀:Requests 库

文章目录 探索 Python HTTP 的瑞士军刀&#xff1a;Requests 库第一部分&#xff1a;背景介绍第二部分&#xff1a;Requests 库是什么&#xff1f;第三部分&#xff1a;如何安装 Requests 库&#xff1f;第四部分&#xff1a;Requests 库的基本函数使用方法第五部分&#xff1a…

【青牛科技】 GC6153——TMI8152 的不二之选,可应用于摇头机等产品中

在电子工程领域&#xff0c;不断寻求性能更优、成本更低的解决方案是工程师们的永恒追求。今天&#xff0c;我们要为广大电子工程师带来一款极具竞争力的产品 —— GC6153&#xff0c;它将成为 TMI8152 的完美替代之选。 一、产品背景 随着科技的飞速发展&#xff0c;电子设备…

基于yolov8、yolov5的番茄成熟度检测识别系统(含UI界面、训练好的模型、Python代码、数据集)

摘要&#xff1a;番茄成熟度检测在农业生产及质量控制中起着至关重要的作用&#xff0c;不仅能帮助农民及时采摘成熟的番茄&#xff0c;还为自动化农业监测提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的番茄成熟度检测模型&#xff0c;该模型使用了…

艾体宝干货丨微突发流量检测与分析:IOTA让网络监控更精准

网络流量中的微突发问题常常难以察觉&#xff0c;但它们可能对网络性能产生显著影响。这篇文章深入探讨了如何利用IOTA来捕捉和分析微突发&#xff0c;帮助您快速有效地解决网络中的突发流量问题。 什么是微突发&#xff08;Microburst&#xff09;流量&#xff1f; 微突发是…

论文略读: ALPAGASUS: TRAINING A BETTER ALPACA WITH FEWER DATA

ICLR 2024 1 背景 大模型通常需要在有监督指令数据集上进行指令微调来加强指令遵循能力 但是广泛使用的数据集包含许多具有不正确或不相关响应的低质量样本&#xff0c;这对大模型微调具有误导性——>论文提出了一种简单有效的数据选择策略&#xff0c;使用ChatGPT自动识别…

【Android】ANR监控治理技术方案

一、 背景 1、 bugly针对crash监控做的比较好&#xff0c;但是对anr监控&#xff0c;早期版本监听 /data/anr 目录的变化可以拿到数据&#xff0c;但是现在高版本已经没有权限监听此目录&#xff0c;当前数据非常少&#xff0c;结合历次数据来看对我们解决ANR问题没有任何帮助…

FreeRTOS学习11——时间片任务调度

时间片任务调度 时间片任务调度 时间片任务调度 概念&#xff1a;时间片调度主要针对优先级相同的任务&#xff0c;当多个任务的优先级相同时&#xff0c;任务调度器会在每一次系统时钟节拍到的时候切换任务&#xff0c;也就是说 CPU 轮流运行优先级相同的任务&#xff0c;每个…

怎么把模糊照片变清晰?4种方法助你修复图片清晰度!

在我们的日常生活中&#xff0c;模糊的图片常常成为影响视觉体验的一大障碍&#xff0c;无论是由于时间久远导致老照片分辨率降低&#xff0c;还是拍摄时因手抖造成的画面模糊&#xff0c;都会让我们的图片质量大打折扣。为了帮助你解决这一困扰&#xff0c;我们为你整理了四种…

Pytorch学习--神经网络--完整的模型验证套路

一、选取的图片 全部代码依托于该博客 二、代码&#xff08;调用训练好的模型&#xff09; import torch import torchvision from PIL import Image from model import *img_path "dog.png" image Image.open(img_path)print(image.size)transform torchvisi…

力扣 LeetCode 454. 四数相加II(Day3:哈希表)

解题思路&#xff1a; 使用map 四个数组两两一组 前两个数组的各个值遍历相加&#xff0c;和为key&#xff0c;出现的次数为value 后两个数组的各个值遍历相加&#xff0c;如果该值的负数能在map中找到&#xff08;表示能抵消为0&#xff0c;符合题意四数之和为0&#xff0…

期权懂|交易股票期权该怎么操作?又该如何开户?

期权小懂每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 交易股票期权该怎么操作&#xff1f;又该如何开户&#xff1f; 一、交易股票期权主要包括以下几个步骤&#xff1a; &#xff08;1&#xff09;选择交易平台‌&#xff1a; 选择…

Unity类银河战士恶魔城学习总结(P124 CharacterStats UI玩家的UI)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了玩家属性栏&#xff0c;仓库&#xff0c;物品栏UI的制作 UI_StatSlot.cs 这个脚本是用来在Unity的UI上显示玩家属性&#xf…

【SSL-RL】自监督强化学习:自预测表征 (SPR)算法

&#x1f4e2;本篇文章是博主强化学习&#xff08;RL&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…

Docker部署kafka集群

1&#xff0c;编写Docker Compose文件 编写一个docker-compose.yml文件来定义服务&#xff0c;以下定义了一个Zookeeper服务和三个Kafka Broker服务&#xff1a; 注意&#xff1a;把10.0.8.4替换成宿主IP version: 3.8services:zookeeper:image: bitnami/zookeeper:latestconta…