【Python】Django学习1
按黑马程序员的美多商场作方向:
1 | https: //www .bilibili.com /video/BV1nf4y1k7G3 |
一、应用创建、注册处理、配置
Pycharm 创建Django项目:
自应用注册处理:
二、应用数据初始化
第一步:创建元数据初始化py脚本
1 | python manage.py makemigrations |
初始化的脚本会放在各个自应用的migrates目录中
第二步:执行初始化py脚本,把表结构信息同步到数据库中
sqlite不需要建库即可实现,mysql需要先把model源信息的库建好才可以同步
1 | python manage.py migrate |
三、站点配置:
1、改成中文时区和语言编码
1 2 3 | LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' |
2、设置站点管理员账号
必须要先通过初始化数据之后才能执行
1 | python manage.py createsuperuser |
更改密码:
更改的密钥要求8位长度,且至少有字母和数字组成
1 | python manage.py changepassword 用户名 |
3、配置自定义端口号:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/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 RunserverCommand def main(): """Run administrative tasks.""" os.environ.setdefault( 'DJANGO_SETTINGS_MODULE' , 'DjangoProject.settings' ) try : from django.core.management import execute_from_command_line except 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 exc execute_from_command_line(sys.argv) if __name__ = = '__main__' : RunserverCommand.default_port = 9090 main() |
4、站点登陆:
1 | http: / / 127.0 . 0.1 : 9090 / admin / |
5、将模型信息注册到django-admin中:
刷新页面可以发现模型信息可以直接在admin中进行管理
6、URL视图配置
工程默认会绑上django-admin的url配置
1 | http: / / 127.0 . 0.1 : 9090 / admin / |
我们可以在这里添加我们自己url配置,对应的,每个自应用也需要创建一个urls.py配置文件
内容填写,一个路由地址,对应视图的一个方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | """ 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 views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. 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进行返回:
1 2 3 4 5 6 | from django.http import HttpResponse # Create your views here. def index(request): return HttpResponse( "Hello, world. You're at the index page." ) |
访问页面进行测试:
1 | http: / / 127.0 . 0.1 : 9090 / book_manager / index / |
7、使用模版渲染处理
创建模版文件,templates为模版的路径根目录,也可以自己改成别的目录
用自应用名称区分开来,mustache语法来读取模版参数
更改index方法逻辑:
1 2 3 4 5 6 7 8 9 | 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、静态文件管理
静态文件默认配置位置(settings文件):
在Debug模式下可以直接访问:
关闭Debug模式后不能访问:
解决方案见此博客:
1 | https: / / blog.csdn.net / qq_41475058 / article / details / 105856148 |
1、设置STATIC_ROOT参数
1 2 3 4 5 6 7 8 | # 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映射配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | """ 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 views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. 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 settings urlpatterns = [ 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命令,打包静态资源
1 | python manage.py collectstatic |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2022-07-28 【JavaScript】精度损失问题
2022-07-28 【SpringMVC】 Controller接收深度复杂对象封装不到的问题
2022-07-28 【Java】删除项目中多余的SVG图片资源
2020-07-28 【Docker】11 私有仓库
2020-07-28 【Docker】10 容器存储
2020-07-28 【TypeScript】02 面向对象
2020-07-28 【TypeScript】01 基础入门