【python之django1.11框架一】django环境搭建及基本操作

news/2024/10/22 16:47:26/

1. 环境准备

  • 开发环境:windows 11
  • 先安装好miniconda3。镜像地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
    选择windows 64位下载。 下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Windows-x86_64.exe
  • 傻瓜式安装。然后配置镜像https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
  • 使用conda 创建python3.6环境
    conda create --name py36 python=3.6
    
    第一次安装conda 需要使用命令 conda init
  • 安装 django=1.11
    conda activate py36
    conda install django=1.11
    # 或者通过pip
    pip3 install django==1.11.11
    
  • 验证环境是否成功。每次使用 django 等相关命令都需要激活py36环境。
$ conda activate py36
$ django-adminType 'django-admin help <subcommand>' for help on a specific subcommand.Available subcommands:[django]checkcompilemessagescreatecachetabledbshelldiffsettingsdumpdataflushinspectdbloaddatamakemessagesmakemigrationsmigraterunserversendtestemailshellshowmigrationssqlflushsqlmigratesqlsequenceresetsquashmigrationsstartappstartprojecttesttestserver
Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).

环境准备完成。

2. django 基本操作

1. 命令行操作方式

# 1.创建django项目"""你可以先切换到对应的D盘 然后再创建"""django-admin startproject mysitemysite文件夹manage.pymysite文件夹__init__.pysettings.pyurls.pywsgi.py# 2.启动django项目"""一定要先切换到项目目录下	cd /mysite"""python manage.py runserver# http://127.0.0.1:8000/# 3.创建应用(具体的业务)
"""
Next, start your first app by running python manage.py startapp [app_label].
"""python manage.py startapp app01应用名应该做到见名知意userorderweb...

主要文件介绍

-mysite项目文件夹--mysite文件夹---settings.py	    配置文件---urls.py			路由与视图函数对应关系(路由层)---wsgi.py			wsgiref模块(不考虑)--manage.py				django的入口文件--db.sqlite3			django自带的sqlite3数据库(小型数据库 功能不是很多还有bug)--app01文件夹---admin.py			django后台管理---apps.py			注册使用---migrations文件夹		数据库迁移记录---models.py		数据库相关的 模型类(orm)---tests.py			测试文件---views.py			视图函数(视图层)

2. pycharm 创建项目

在这里插入图片描述

3. 命令行与pycharm创建的区别

# 1 命令行创建不会自动有templatew文件夹 需要你自己手动创建而pycharm会自动帮你创建并且还会自动在配置文件中配置对应的路径
# pycharm创建
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')]
]
# 命令行创建
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [],
]
"""
也就意味着你在用命令创建django项目的时候不单单需要创建templates文件夹还需要去配置文件中配置路径
'DIRS': [os.path.join(BASE_DIR, 'templates')]
"""# 2. 注册应用
***********************创建的应用一定要去配置文件中注册**********************
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01.apps.App01Config',  # 全写'app01',			 # 简写
]
# 创建出来的的应用第一步先去配置文件中注册 其他的先不要给我干
ps:你在用pycharm创建项目的时候 pycharm可以帮你创建一个app并且自动注册

4. 小试牛刀

# 1. 创建应用 app01。并在study_web01目录下的setting.py文件中进行注册。# 2. 在urls.py文件
from django.conf.urls import url
from django.contrib import adminfrom app01 import viewsurlpatterns = [url(r'^admin/', admin.site.urls),url(r'index/', views.index),url(r'login/', views.login),
]# 3. 在app01.views 文件中
from django.shortcuts import render, HttpResponse, redirect# Create your views here.
def index(request):# request 请求相关的所有数据对象# return HttpResponse("hello world")# return render(request, 'first.html')# return redirect('https://www.baidu.com')  # 可自动跳转到其他地址,也可跳转自己项目的其他路由return redirect('/login')def login(request):return HttpResponse("login")"""
总结:
HttpResponse返回字符串类型的数据render返回html文件的 (需要在 templates中增加对应的html文件)redirect重定向return redirect('https://www.baidu.com/')return redirect('/home/')
"""

3. 静态文件配置

  • 我们将html文件默认都放在templates文件夹下
  • 我们将网站所使用的静态文件默认都放在static文件夹下
  • django默认是不会自动帮你创建static文件夹 需要你自己手动创建
"""
一般情况下我们在static文件夹内还会做进一步的划分处理-static--js--css--img其他第三方文件
"""

1. 配置静态资源存放路径

# 在settings.py 文件中
STATIC_URL = '/static/'  # 类似于访问静态文件的令牌
"""如果你想要访问静态文件 你就必须以static开头"""
"""
/static/bootstrap-3.3.7-dist/js/bootstrap.min.js/static/令牌
取列表里面从上往下依次查找bootstrap-3.3.7-dist/js/bootstrap.min.js都没有才会报错
"""
# 静态文件配置,在此新增以下代码
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static'),
]# 在html文件进行引用静态文件
<link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
<script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>

2. 静态文件动态解析

# settting.py 文件不做改动。只需要修改html中引用静态文件的地方
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>

4. request对象基本操作

1. 获取请求方法

# request.method
# 返回请求方式 并且是全大写的字符串形式  <class 'str'>

2. 获取请求参数

# 获取用户数据
# print(request.POST)  # 获取用户提交的post请求数据(不包含文件)
# <QueryDict: {'username': ['jason'], 'password': ['123']}>
username = request.POST.get('username')
print(username, type(username))  # tom <class 'str'>
# get方法 只会获取列表最后一个元素# getlist 获取完整的列表
username = request.POST.getlist('username')
hobby = request.POST.getlist('hobby')
# ['tom'] <class 'list'>
# ['111', '222', '333'] <class 'list'>

总结

"""
request.method # 返回请求方式 并且是全大写的字符串形式  <class 'str'>
request.POST  # 获取用户post请求提交的普通数据不包含文件request.POST.get()  # 只获取列表最后一个元素request.POST.getlist()  # 直接将列表取出
request.GET  # 获取用户提交的get请求数据request.GET.get()  # 只获取列表最后一个元素request.GET.getlist()  # 直接将列表取出
"""

http://www.ppmy.cn/news/93123.html

相关文章

学习【菜鸟教程】【C++ 类 对象】【C++ 类的静态成员】

链接 1. 教程 可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时&#xff0c;这意味着无论创建多少个类的对象&#xff0c;静态成员都只有一个副本。 静态成员在类的所有对象中是共享的。如果不存在其他的初始化语句&#xff0c;在创建第一个对象时…

队列:数据结构中的排队之道

本篇博客会讲解队列这种数据结构&#xff0c;并使用C语言实现。 概况 什么是队列呢&#xff1f;队列是一种先进先出的数据结构&#xff0c;即First In First Out&#xff0c;简称FIFO。队列有2端&#xff0c;分别是队头和队尾&#xff0c;规定只能在队尾插入数据&#xff08;…

UDP报头、TCP报头、IP报头、MAC头部、ARP头部

前言&#xff1a;DUP报头、TCP报头、IP报头、MAC头部、ARP头部。 UDP报头&#xff1a; UDP报头由八个字节组成&#xff0c;每个字段都是两个字节 &#xff1a; 1.源端口号&#xff1a;发送方端口号&#xff0c;需要对方回信的时候选用&#xff0c;不需要对方回信的时候置0 …

AGV/AMR控制器--科聪

AGV/AMR控制器--科聪 1 行业介绍1.1 控制器概念1.2 行业发展1.3 竞争格局 2 科聪控制器 MRC50002.1 介绍2.2 支持多种导航方式2.3 适配各种轮系底盘2.4 核心参数2.5 优势灵活的二次开发平台&#xff1a;机器人设计软件&#xff08;xRobotStudio&#xff09;完备的实施调试工具&…

Makefile基础教学(include的使用方法)

文章目录 前言一、include在makefile中的概念介绍二、include使用示例三、include中需要注意的一些操作1. 在include前加-选项2. include触发规则创建了文件会发生什么3. include包含的文件夹存在 总结 前言 本篇文章将讲解include的使用方法&#xff0c;在C语言中使用include…

【计算机网络基础】辨析专题⑤ 运输层

文章目录 重要简写重要概念重要简写 1.UDP——用户数据报协议 2.TCP——传输控制协议 3.API——应用编程接口 4.ARQ——自动重传请求 5.MSS——最大报文段长度 6.SACK——选择确认 7.AQM——主动队列管理 8.RED——随机早期检测 9.TCB——传输控制块 10.cwnd——拥塞窗口 11.R…

UC-OWOD: Unknown-Classified Open World Object Detection(论文翻译)

文章目录 UC-OWOD: Unknown-Classified Open World Object Detection摘要1.介绍2.相关工作3.未知分类的开放世界目标检测3.1 问题定义3.2 整体架构3.3 未知物体的检测3.4基于相似性的未知分类3.5未知聚类优化3.6训练和优化 4&#xff1a;实验4.1准备工作4.2结果和分析4.3消融研…

Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践(解决升级问题)

在Streamlit官方文档中&#xff0c;没有提供提供安全身份验证组件。目前&#xff0c;第三方streamlit-authenticator提供此功能&#xff0c;详见引用我原来的博文&#xff0c;在《Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践》文中&#xff0c;原…