首页 > 编程语言 >【Python】Django学习1

【Python】Django学习1

时间:2024-07-28 18:28:46浏览次数:11  
标签:index views Python Django 学习 urls path import django

 

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

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 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、站点登陆:

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 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进行返回:

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、静态文件管理

静态文件默认配置位置(settings文件):

 

在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 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命令,打包静态资源

python manage.py collectstatic

  

 

标签:index,views,Python,Django,学习,urls,path,import,django
From: https://www.cnblogs.com/mindzone/p/18328247

相关文章

  • Python爬虫入门01:在Chrome浏览器轻松抓包
    文章目录爬虫基本概念爬虫定义爬虫工作原理爬虫流程爬虫类型爬虫面临的挑战使用Chrome浏览器抓包查看网页HTML代码查看HTTP请求请求头(RequestHeader)服务器响应抓包的意义爬虫基本概念爬虫定义爬虫(WebCrawler或Spider)是一种自动浏览互联网的程序,它按照一定的......
  • Python科研武器库 - 字符串操作 - 字符串分隔 split()、rsplit()
    使用场景:在科研中,数据样本的命名方式往往包含着对应的信息,例如,一张人脸图片34_anger_1.png,文件名中包含着该图片中主体在数据集中的ID、人脸表情种类、以及该图片是同类型第几张图片。使用python批量处理数据时,从文件名中获取对应信息也是很关键的一步,然后才能基于这些信息进......
  • 深度学习计算
    一.参数访问我们以多层感知机为例importtorchfromtorchimportnnnet=nn.Sequential(nn.Linear(4,8),nn.ReLU(),nn.Linear(8,1))X=torch.rand(size=(2,4))net(X)先访问一下参数字典print(net[2].state_dict())结果:就是把参数名称和参数的值都列出来了1......
  • Django Web开发:构建强大RBAC权限管理系统的实战指南
    文章目录前言一、rbac基于角色的权限管理1.acl基于用户的权限管理2.rbac基于角色的权限管理二、应用示例1.配置角色资源a.分析表b.核心逻辑c.使用transfer在前端实现资源配置d.页面效果2.登录时获取对应权限a.员工登录b.中间件c.前端请求d.效果图3.前端-路由守卫......
  • django学习入门系列之第五点《javascript的条件语句和函数》
    文章目录5.6条件语句5.7函数往期回顾5.6条件语句if(){}elseif(){}5.7函数#python中函数定义的格式deffunc{函数的内容}#使用函数func()//javascript函数中的内容functionfunc(){函数的内容}//使用函数func()往......
  • Python用GARCH、离散随机波动率模型DSV模拟和估计股
    原文链接:http://tecdat.cn/?p=25165 原文出处:拓端数据部落公众号这篇文章介绍了一类离散随机波动率模型,并介绍了一些特殊情况,包括GARCH和ARCH模型。本文展示了如何模拟这些过程以及参数估计。本文为这些实验编写的Python代码在文章末尾引用。离散随机波动率模型是一个......
  • ssy暑假集训暴力算法学习笔记
    7.28集训第六天今天t大学的学长peop1e来给我们讲课啦!人好帅呀嘿嘿嘿....内容如下模拟退火:定义模拟退火可以分成两个部分,一个是"模拟",一个是"退火",先介绍什么叫退火,贴一张百度百科的图吧:\(\\\)那这"退火"的定义有啥用吗?模拟退火就是用来模拟整个退火的过程(其实没啥相似......
  • 加州大学伯克利分校等发表的RouteLLM:利用偏好数据学习路由大语言模型
    加州大学伯克利分校等发表的RouteLLM:利用偏好数据学习路由大语言模型原创 无影寺 AI帝国 2024年07月18日08:03 广东一、结论写在前面论文标题:RouteLLM:LearningtoRouteLLMswithPreferenceData论文链接:https://arxiv.org/pdf/2406.18665v2LLM在广泛的任务中......
  • Python - Plotly Express - x 轴 xticks
    我有一个代码,我想用标签作为月份和年份的名称绘制x轴。但目前它正在x轴上绘制所有时间戳,如-代码片段是:fig=px.scatter(data_frame,x=data_frame.timestamp,y=data_frame.err_codes_integer,hover_name=data_frame.col3,......
  • 8:Python字符串的魔法属性
    test="alex"v=test.capitalize()#首字母的大写print(v)test1="alEx"v1=test1.casefold()#所有字母变小写print(v1)test2="alEx"v2=test2.center(20,"*")#设置宽度,并将内容居中,20代指总长度,*代指空白位置填充且只能填一个字符print(v2)test3="alexralexr"v3=te......