当前位置: 首页 > news >正文

python练习-Django web入门

python -m pip install --user requests

使用API调用请求数据

  • 处理API响应
import requestsclass 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)# 200print(f"Status code:{r.status_code}")response_dict=r.json()# dataprint(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.pyfrom django.db import modelsclass 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 HttpResponsedef index(request):return HttpResponse("Hello, world!")# 11、配置 URL
应用程序目录(appppp)下创建urls.py
from django.urls import path
from . import viewsurlpatterns = [path('', views.index, name='index'),
]在项目目录(myproject)下urls.py添加路径映射
from django.contrib import admin
from django.urls import path, includeurlpatterns = [# path('', views.index, name='index'),path('appppp/', include('appppp.urls')),
]# 12、运行
python manage.py runserverhttp://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 Bookdef 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 viewsurlpatterns = [# 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 Bookadmin.site.register(Book)

  • 在项目(非应用程序)urls.py下添加映射
from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('', include('appppp.urls')),
]
  • 启动
python manage.py runserver

http://www.mrgr.cn/news/70741.html

相关文章:

  • 【视觉SLAM】4b-特征点法估计相机运动之PnP 3D-2D
  • Linux ss 命令详解
  • #Uniapp篇:支持纯血鸿蒙发布适配UIUI
  • Benchmark是什么?有什么作用?实例——助理解
  • SpringBoot学习记录(六)配置文件参数化
  • 谷歌云无法ssh登录(修改sshd_config也不行)
  • STM32:ADC
  • 万字长文解读机器学习——决策树
  • [C++]——位图与布隆过滤器
  • Rust 模板匹配——根据指定图片查找处于大图中的位置(支持GPU加速)
  • APP封装系统 app误报毒app可上传 自动实现5分钟随机更换包名和签名
  • VMnet NAT模式配置
  • Perfetto中如何使用SQL语句
  • MutationObserver与IntersectionObserver的区别
  • IEEE JSSC更新|Tiny Tapeout:让每个人都能设计定制芯片
  • 【C】一文速学----线程池原理与实战
  • 【计算机网络】网络框架
  • C0028.在Clion中快速生成头文件中声明的函数的方法
  • 车载诊断架构---域控下挂节点信息同步策略
  • 基于51单片机密码锁—有3个密码lcd1602显示
  • 【项目开发】RESTful架构及RESTful API设计指南
  • dapp获取钱包地址,及签名
  • js.零钱兑换
  • python:用 sklearn 转换器处理数据
  • 【C++ 篇】类之华章:超越固有模式,品味面向对象的璀璨光芒
  • OSG开发笔记(三十一):OSG中LOD层次细节模型介绍和使用