随笔 - 22, 文章 - 0, 评论 - 0, 阅读 - 547
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 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 29
30 31 1 2 3 4 5

django入门

Posted on   乱了啦  阅读(13)  评论(0编辑  收藏  举报

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')
 
# 字段的修改
    直接修改代码然后执行数据库迁移的两条命令即可!

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

 

 

 

 

 

 
 

 

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示