Django基础功能操作

本文深入探讨Django框架下的Web开发,涵盖登录功能、模板使用、静态文件配置、表单提交、请求解析、数据库操作及前后端数据交互流程。通过实例讲解,帮助读者掌握Django开发关键技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  1.登录功能(web简易版 基于pymysql 对于数据库的操作,接下来都是用django与数据库的操作)

   需要注意的小点:补充

 (了解知识点)在向器发送是否加斜杠的本质(两次访问)

​ 第一次是浏览器发送信息说没有斜杠没有办法匹配3xx重定向(Django)说在试一次加斜杠的看看,斜杠成功了,再连不上就会报错。

  2.templates的作用:

  所有的html文件都是默认写在templates 文件下面;用来连接函数与html的 返回函数 发送到浏览器 (渲染页面)、

  3.关于静态页面的设置:  

为什么需要静态文件:主要是暴露给外界能够访问服务器静态文件下面的所有资源

​ 注意默认大写:STATIC_URL="/xxx/"  #接口前缀 跟你的静态文件夹的名字一样一点关系都没有  只是为了好记
 静态文件的配置:STATIC_BIRS = [
    os.path.join(BASE_DIR,'static')    #就是你的静态文静夹
]
注意#ps:会依次查找列表中所有的静态文件路径 找到的话就立刻停止 没有这返回404

  4.form 表单提交的两种方式:

  

 form表单触发提交数据的动作两种方式
    1.<input type="submit" class="bnt btn-success">


    2.<button></button>

 

  5.登录:提交数据的地址如何指定的及方式

        action 属性控制提交的地址
        方式1:全路径
        <form action="http://127.0.0.1:8000">
        方式2:可以只写路径后缀
         <form action="/login/">
        方式3:不写默认当前路径:http://127.0.0.1:8000/login/

 

  6.把默认get 请求数据改成 method=post 在form 表单 中 添加method=post

  7.登录时请求方式解析:

def login(request):
    print(request.method)
    if request.method== 'GET':    # 
        return render(request, 'login.html',)
    elif request.method == 'POST':
        return HttpResponse('已收到请求信息 ')   #
    
    # jason 建议:减少代码冗余
    if request.method=='POST':
        return HttpRepoast('请求OK')
    retuen render(requrest,'lgoin.html')
    ————————————————
    
def login(request):
    print(request.method)
    if request.method== 'GET':
        return render(request, 'login.html',)
    elif request.method == 'POST':
        print(request.POST)    # <QueryDict: {'username': ['贝多芬'], 'password': ['123']}> 大字典
        # 所有可以通过字典取值
        print(request.POST.get('username'))   # value 虽然是个列表但是拿出来的确是单个的字符
        # 切默认
        print(request.POST.get('password'))
        # 里面要是有多个爱好 可以getlist
        print(request.POST.getlist('username'))

    
    #    if request.method=='POST':
        return HttpResponse('请求ok')
    print(request.GET)
    # GET请求和POST请求一模一样
    return render(request,'login.html')

 

  8.django  操作数据库的方式:在settings 中DATABASES 配置文件

 

 添加我们操作数据需要的标准需求:如下(*********)

        1.需要修改的配置文件******************
        
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        
        'POST':3306,
        'HOST':'127.0.0.1',
        'USER':'root',
        'NAME':'day54',
        'PASSWORD':'8888'
    }
}

 

  9.数据库配置设置好之后我们需要把

  每一步都不能出错(**********)

  告诉django 用pymysql 替换他默认mysql_db 模块数据连接数据库
  方式1:在咱们的项目文件夹myfirstdjango下面的__init__.py

  方式2: 也可以在咱们的应用文件夹app01下面的__init__.

  

  # 固定写法(***********)
      import pymysql
      pymysql.install_as_MySQLdb()   # 告诉Django用pymysql代替mysqldb链接数据库
    

 

  10.Django 中的ORM是如何映射到我们数据的表关系:

  

```python
#9:dajango 中的ORM类与数据库中(mysql)中表的关系
# 类 >>>>>>>>   对应数据库中的一张表
# 对象>>>>>>>   对应数据库中的一条条记录
# 对象的属性>>>>>对应数据库中的一条记录某个字段对应的值
```

   11.如何事现在Django  进行前后端数据交互 :流程一定要要明确

    1.先注册功能实现 用户对于注册 增  查 改 删 

         思路:

# 修改用户信息,内容,文章 数据库
def edit(request):
    if request.method == 'POST':

        username=request.POST.get('username')
        password=request.POST.get('password')
        print(request.POST)   # <QueryDict: {'edit_id': ['1'], 'username': ['贝多芬'], 'password': ['123']}>
        print('0000')
        print(request.GET)    # <QueryDict: {'edit_id': ['7']}>  # t同样GET也可以拿到用户修改数据时发送的edit_id
        # 获取用户修改数据的id
        edit_id = request.POST.get('edit_id')
        edit_id = request.GET.get('edit_id')
        models.User.objects.filter(id=edit_id).update(name=username, password=password)
        return redirect('/userlist')

     # 先写的这里
    # edit_id = request.GET.get("edit_id")
    #
    #
    # return redirect(request,'userlist')

    edit_id=request.GET.get('edit_id')
    user_obj=models.User.objects.filter(id=edit_id).first()
    return render(request,'edit.html',locals())

 

 

 


​  

转载于:https://www.cnblogs.com/mofujin/p/10988250.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值