【Python】Django学习1

news/2024/11/15 19:55:25/文章来源:https://www.cnblogs.com/mindzone/p/18328247

 

按黑马程序员的美多商场作方向:

https://www.bilibili.com/video/BV1nf4y1k7G3

 

一、应用创建、注册处理、配置

Pycharm 创建Django项目:

 

自应用注册处理:

 

二、应用数据初始化

第一步:创建元数据初始化py脚本

python manage.py makemigrations

初始化的脚本会放在各个自应用的migrates目录中

 

第二步:执行初始化py脚本,把表结构信息同步到数据库中

sqlite不需要建库即可实现,mysql需要先把model源信息的库建好才可以同步

python manage.py migrate

  

三、站点配置:

 1、改成中文时区和语言编码

 

LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'

  

2、设置站点管理员账号

 必须要先通过初始化数据之后才能执行

python manage.py createsuperuser

  

更改密码:

 更改的密钥要求8位长度,且至少有字母和数字组成

python manage.py changepassword 用户名

  

3、配置自定义端口号:

 

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
from django.core.management.commands.runserver import Command as RunserverCommanddef main():"""Run administrative tasks."""os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoProject.settings')try:from django.core.management import execute_from_command_lineexcept ImportError as exc:raise ImportError("Couldn't import Django. Are you sure it's installed and ""available on your PYTHONPATH environment variable? Did you ""forget to activate a virtual environment?") from excexecute_from_command_line(sys.argv)if __name__ == '__main__':RunserverCommand.default_port = 9090main()

  

4、站点登陆:

http://127.0.0.1:9090/admin/

 

 

5、将模型信息注册到django-admin中:

 

 

刷新页面可以发现模型信息可以直接在admin中进行管理

 

6、URL视图配置

工程默认会绑上django-admin的url配置 

http://127.0.0.1:9090/admin/

我们可以在这里添加我们自己url配置,对应的,每个自应用也需要创建一个urls.py配置文件

 

内容填写,一个路由地址,对应视图的一个方法:

"""
URL configuration for DjangoProject project.The `urlpatterns` list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/5.0/topics/http/urls/
Examples:
Function views1. Add an import:  from my_app import views2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views1. Add an import:  from other_app.views import Home2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include
from .views import index
urlpatterns = [path('index/', index)
]

 

views.py中的index方法,调用的是httpResponse进行返回:

from django.http import HttpResponse# Create your views here.
def index(request):return HttpResponse("Hello, world. You're at the index page.")

访问页面进行测试:

http://127.0.0.1:9090/book_manager/index/

  

 

 

7、使用模版渲染处理

创建模版文件,templates为模版的路径根目录,也可以自己改成别的目录

 

 

用自应用名称区分开来,mustache语法来读取模版参数

 

更改index方法逻辑:

from django.http import HttpResponse
from django.shortcuts import render# Create your views here.
def index(request):# return HttpResponse("Hello, world. You're at the index page.")context = {'title': 'Django Book Manager'}return render(request, 'book_manager/index.html', context) 

刷新查看页面:

 

8、上线配置ALLOW_HOSTS和关闭Debug模式

 

Debug模式将会把报错信息直接打印在页面上

 关闭Debug模式后,仅简单输出内容

 

9、静态文件管理

静态文件默认配置位置:

 

在Debug模式下可以直接访问:

 关闭Debug模式后不能访问:

 

解决方案见此博客:

https://blog.csdn.net/qq_41475058/article/details/105856148

 

1、设置STATIC_ROOT参数

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.0/howto/static-files/# 静态资源url访问路径
STATIC_URL = 'static/'# python manage.py collectstatic 收集后的资源目录位置
STATIC_ROOT = os.path.join(BASE_DIR, 'static_prod')

 

2、给静态目录追加url映射配置:

"""
URL configuration for DjangoProject project.The `urlpatterns` list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/5.0/topics/http/urls/
Examples:
Function views1. Add an import:  from my_app import views2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views1. Add an import:  from other_app.views import Home2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include, re_path
from django.views.static import serve
from DjangoProject import settingsurlpatterns = [re_path(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}, name='static'),path('admin/', admin.site.urls),path('book_manager/', include('book_manager.urls')),path('my_app/', include('my_app.urls')),path('my_app2/', include('my_app2.urls')),
]

 

3、执行collect命令,打包静态资源

python manage.py collectstatic

  

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

catboost库作用与安装

CatBoost是一种机器学习库,‌由俄罗斯的搜索巨头Yandex在2017年开源。‌它属于Boosting族算法的一种,‌与XGBoost、‌LightGBM并称为GBDT的三大主流神器。‌CatBoost的主要作用和创新点在于高效合理地处理类别型特征,‌这是从其名称中的"Cat"(‌分类)‌和"…

xgboost的作用与库的安装

XGBoost是一个非常强大的Boosting算法工具包,‌以其优秀的性能(‌效果与速度)‌在数据科学比赛中长期占据领先地位,‌并且在许多大厂的机器学习方案中也是首选模型。‌ XGBoost在并行计算效率、‌缺失值处理、‌控制过拟合、‌预测泛化能力等方面表现出色。‌它的主要特点和…

设计模式:代理、装饰和适配器模式的区别

适配器模式、代理模式、装饰模式结构对比 讲实话,博主当初学习完整设计模式时,这三种设计模式单独摘哪一种都是十分清晰和明确的,但是随着模式种类的增加,在实际使用的时候竟然会出现恍惚,例如读开源代码时,遇到不以模式命名规范的代码时,一时难以说清具体是使用的这三种…

nand2tetris_hack计算机

构建Hack CPU,然后将CPU与RAM集成在一起,创建一个能够执行Hack机器语言的通用16位计算机终于来到了这一步!! 前文里,我们学习了hack编程语言,大概知道需要实现的hack计算机是什么样子,需要实现哪些功能。同时在更早的时候,我们建造了ALU和RAM组件,加上老师内置的ROM和…

暑假集训csp提高模拟10

赛时 rank 19,T1 0,T2 25 T3 10 T4 100 T3 挂了10pts? 数学专场,套路专场,烧脑专场。 幸亏我还有缓存的李超树博客,最后一个小时就溜了去打数据结构。 数学好难,拜谢数学。 T1 黑暗型高松灯 Company Acquisitions 要用势能分析,鞅的停时定理。由于赛时这个放T1非常逆天,…

Java-002

final关键字 final 关键字是最终的意思,可以修饰(类、方法、变量) 修饰类:该类被称为最终类,特点是不能被继承了。 修饰方法:该方法被称为最终方法,特点是不能被重写了。 修饰变量:该变量只能被赋值一次。 final修饰的变量必须赋值,要么在定义时赋值,要么在构造器中赋…

Java-001

Java入门 IDEA优化idea插件 翻译、阿里巴巴代码规范指导IDEA debug使用 Step into:单步执行(一行一行代码执行),如果遇到子函数,就会进入子函数,并且继续单步执行。就是每一行需要执行的代码都不跳过,一行一行进行。 Step over:在单步执行的时候,如果遇到子函数,并不…

ComfyUI插件:ComfyUI Impact 节点(二)

前言: 学习ComfyUI是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修…

java-03

集合进阶 集合容器中只能存放对象,基本数据类型需要使用对应的包装类 Collection单列集合 collection集合体系 collection常用方法package com.itheima.d1_collection;import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.…

Nuxt.js 路由管理:useRouter 方法与路由中间件应用

title: Nuxt.js 路由管理:useRouter 方法与路由中间件应用 date: 2024/7/28 updated: 2024/7/28 author: cmdragon excerpt: 摘要:本文介绍了Nuxt 3中useRouter方法及其在路由管理和中间件应用中的功能。内容包括使用useRouter添加、移除路由,获取路由信息,基于History …

java-01

Java入门 IDEA优化idea插件 翻译、阿里巴巴代码规范指导IDEA debug使用 Step into:单步执行(一行一行代码执行),如果遇到子函数,就会进入子函数,并且继续单步执行。就是每一行需要执行的代码都不跳过,一行一行进行。 Step over:在单步执行的时候,如果遇到子函数,并不…

帝国CMS后台登录错误5次限制的解决办法

第一步,打开 /e/config/config.php 文件找到:loginnum ,这一项,将值由5改大一点即可。loginnum=>5,logintime=>60,logintime 就是锁定时间。扫码添加技术【解决问题,仅需10元起】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Jav…