首页 > 其他分享 >django入门

django入门

时间:2023-06-23 22:22:24浏览次数:48  
标签:文件 入门 models py request django 字段

django使用前注意事项:

 

  """
  1.计算机名称不能有中文
  2.一个pycharm窗口不要打开多个项目(跟不要出现文件夹套文件夹多级目录的出现)
      day01
      day02
      ...
  3.文件名也不要出现中文
          如果django安装成功了但是启动就报错
          那么点击报错的那一行将那一行源码的逗号删除即可

      
            pip3 install django
      环境变量配置 多版本共存

  """

 

django必会命令

命令创建项目命令
django-admin startproject mysite
    mysite
          mysite
        manage.py
    2.启动django项目(先切换到mysite路径下)
        python3 manage.py runserver 127.0.0.1:9090
    3.创建应用
        python3 manage.py startapp app01

 """
  1.一个django项目就类似于是一个空壳子 本身没有任何的内容(大学)
  应用就类似于是一个个的功能模块(学院)
  
  2.创建应用之后一定要先去配置文件中注册才能生效
  INSTALLED_APPS = [
      'app01'  # 简写
      ‘app01.apps.App01Config’  # 全称
  ]
  """
pychrm创建项目
"""
1.命令行创建不会自动创建templates文件夹并且也不会自动配置路径
DIR:[os.path.join(BASE_DIR,'templates')]
2.pycharm则会自动创建并且自动配置路径
3.pycharm还可以自动帮你创建一个应用并且自动注册(只能创一个)
"""

"""
django主要文件介绍
-mysite
--mysite
---urls.py
---settings.py
...
-manage.py
-app01
--migrations
数据库迁移记录
--apps.py
--tests.py
--models.py
--views.py
"""
 

django必会三条命令

 

  from django.shortcuts import HttpResponse,render,redirect
  
  return HttpResponse('字符串')
  
  return render(request,'login.html')
  def ab_render(request):
      # 视图函数必须要接受一个形参request
      user_dict = {'username':'jason','age':18}
      # 第一种传值方式:更加的精确 节省资源
      # return render(request,'01 ab_render.html',{'data':user_dict,'date':123})
      # 第二种传值方式:当你要传的数据特别多的时候
      """locals会将所在的名称空间中所有的名字全部传递给html页面"""
      return render(request,'01 ab_render.html',locals())
      
  return redirect(url)

 

静态文件配置

"""
我们将html文件默认都放在templates文件夹下
我们将网站所使用的静态文件默认都放在static文件夹下

静态文件
    前端已经写好了的 能够直接调用使用的文件
        网站写好的js文件
        网站写好的css文件
        网站用到的图片文件
        第三方前端框架
        ...
        拿来就可以直接使用的
    
"""
在浏览器中输入url能够看到对应的资源
是因为后端提前开设了该资源的借口
如果访问不到资源 说明后端没有开设该资源的借口

当你在写django项目的时候 可能会出现后端代码修改了但是前端页面没有变化的情况
    1.你在同一个端口开了好几个django项目 
        一直在跑的其实是第一个django项目
    
    2.浏览器缓存的问题
        settings
            network
                disable cache 勾选上    



STATIC_URL = '/ooo/'  # 类似于访问静态文件的令牌
"""如果你想要访问静态文件 你就必须以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'),
    os.path.join(BASE_DIR,'static1'),
    os.path.join(BASE_DIR,'static2'),
]


# 静态文件动态解析
    {% 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>


# form表单默认是get请求数据
    http://127.0.0.1:8000/login/?username=jason&password=123
"""
form表单action参数
    1.不写 默认朝当前所在的url提交数据
    2.全写 指名道姓
    3.只写后缀 /login/
"""

# 在前期我们使用django提交post请求的时候 需要取配置文件中注释掉一行代码
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
request对象方法初识
request.method # 返回请求方式 并且是全大写的字符串形式  <class 'str'>
request.POST  # 获取用户post请求提交的普通数据不包含文件
    request.POST.get()  # 只获取列表最后一个元素
  request.POST.getlist()  # 直接将列表取出
request.GET  # 获取用户提交的get请求数据
    request.GET.get()  # 只获取列表最后一个元素
  request.GET.getlist()  # 直接将列表取出


"""
get请求携带的数据是有大小限制的 大概好像只有4KB左右
而post请求则没有限制
"""

django连接MySQL

 

# 默认用的是sqkite3
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# django链接MySQL
    1.第一步配置文件中配置
      DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'day60',
        'USER':'root',
        'PASSWORD':'admin123',
        'HOST':'127.0.0.1',
        'PORT':3306,
        'CHARSET':'utf8'
    }
}

注意:django2.1以上的版本需要下载MySQLclient和pymysq

Django ORM
"""
ORM. 对象关系映射
作用:能够让一个不用sql语句的小白也能够通过python 面向对象的代码简单快捷的操作数据库
不足之处:封装程度太高 有时候sql语句的效率偏低 需要你自己写SQL语句

类                                    表

对象                                    记录
    
对象属性                                记录某个字段对应的值

应用下面的models.py文件
"""
class User(models.Model):
# id int primary_key auto_increment
id = models.AutoField(primary_key=True,verbose_name='主键')
# username varchar(32)
username = models.CharField(max_length=32,verbose_name='用户名')
"""
CharField必须要指定max_length参数 不指定会直接报错
verbose_name该参数是所有字段都有的 就是用来对字段的解释     # 由于一张表中必须要有一个主键字段 并且一般情况下都叫id字段
# 所以orm当你不定义主键字段的时候 orm会自动帮你创建一个名为id主键字段
# 也就意味着 后续我们在创建模型表的时候如果主键字段名没有额外的叫法 那么主键字段可以省略不写
"""
# password int
password = models.IntegerField(verbose_name='密码')  
 

*************************# 2 数据库迁移命令*************************
python3 manage.py makemigrations 将操作记录记录到小本本上(migrations文件夹)

python3 manage.py migrate 将操作真正的同步到数据库中
# 只要你修改了models.py中跟数据库相关的代码 就必须重新执行上述的两条命令
******************************************************************

 

django字段的增删改查

 

# 字段的增加
    1.可以在终端内直接给出默认值
  2.该字段可以为空
    info = models.CharField(max_length=32,verbose_name='个人简介',null=True)
  3.直接给字段设置默认值
    hobby = models.CharField(max_length=32,verbose_name='兴趣爱好',default='study')
 
# 字段的修改
    直接修改代码然后执行数据库迁移的两条命令即可!

# 字段的删
    直接注释对应的字段然后执行数据库迁移的两条命令即可!
  执行完毕之后字段对应的数据也都没有了

 

 

 

 

 

   

 

 

标签:文件,入门,models,py,request,django,字段
From: https://www.cnblogs.com/shuai61457/p/17500402.html

相关文章

  • ASP.NET Core MVC 从入门到精通之缓存
    随着技术的发展,ASP.NETCoreMVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NETCoreMVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NETCoreMVC系统开发的人员。经过前几篇文章的讲解,初步了解ASP.NETCore......
  • 【Django】图形验证码显示及验证
    图形验证码显示及验证开发项目时,在登陆或者注册功能中为防止脚本恶意破坏系统,故而添加图形验证码。1安装配置安装第三方库pipinstalldjango-simple-captcha配置settings.pyINSTALLED_APPS=[ ......'captcha',]将已存在的数据库迁移文件集同步到数据库中......
  • django前戏
    Web框架本质web框架本质上可以看成是一个功能强大的socket服务端,用户的浏览器可以看成是拥有可视化界面的socket客户端。两者通过网络请求实现数据交互,学者们也可以从架构层面上先简单的将Web框架看做是对前端、数据库的全方位整合纯手撸web框架服务端importsocketserve......
  • 垃圾识别系统Python+TensorFlow+Django+卷积神经网络算法【完整代码系统】
    一、介绍垃圾识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对5种垃圾数据集进行训练,最后得到一个识别精度较高的模型。并基于Django,开发网页端操作平台,实现用户上传一张垃圾图片识别其名称。二、效果展示三、演示视频+代码视......
  • 交通标志识别系统Python+TensorFlow+Django+卷积神经网络算法实现【完整代码】
    一、介绍使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Django,开发网页端操作平台,实现用户上传一张图片识别其名称。二、效果展示三、演示视频视频+完整代码:https://www.yuque.......
  • TensorFlow入门—1
    TensorFlow入门本指南可让您在TensorFlow中进行编程。使用本指南之前, 请安装TensorFlow。为了充分利用本指南,您应该了解以下内容:·        如何用Python编程·        至少有点数组。·        理想的是关于机器学习的东西。但是,如果您对机器学习知之甚少......
  • 机器学习从入门到进阶所需学习资料-包括书、视频、源码
    本文整理了一些入门到进阶机器学习所需要的一些免费的精品视频课程,一些优质的书籍和经典的代码实战项目。视频1.1吴恩达老师机器学习课程:•Coursera•网易云课堂•英文笔记•中文笔记、字幕1.2吴恩达深度学习课程•Coursera•网易云课堂•笔记1.3斯坦福CS231n:Co......
  • MasterCAM 2021中文版数控编程加工基础入门视频教程
    适用对象:MasterCAM2021中文版内容简介:本教程通过12章节课程详细讲解MasterCAM2021软件的基础操作,包括2D/3D绘图、数控编程和曲面加工等,实战性强,纯干货,结合实际操作让用户快速掌握软件,真正实现学以致用。本教程画质虽不是高清的,但不影响观看,同时附安装包,暂无配套素材文件,好的......
  • 02-指针入门
    目录一.什么是指针1.1指针的两种含义1.2指针表示含义二.指针类型的意义2.0问题引出2.1不同类型指针步长不同2.2不同类型指针解引用的权限不同三.野指针3.1指针未初始化造成野指针3.2指针越界访问造成野指针3.3指针指向的空间释放(动态内存)3.4如何规避野指针四.指针......
  • 花朵识别系统Python+TensorFlow+Django+卷积神经网络算法实现
    一、背景花朵识别系统,基于Python实现,深度学习卷积神经网络,通过TensorFlow搭建卷积神经网络算法模型,并对数据集进行训练最后得到训练好的模型文件,并基于Django搭建可视化操作平台。在当今信息化社会,图像识别技术在各种领域都展现出了重要的应用价值,包括医学影像分析、自动驾驶、......