Web开发:django+前端+数据库(7)

这篇具有很好参考价值的文章主要介绍了Web开发:django+前端+数据库(7)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python知识点:函数、面向对象

前端开发:HTML、CSS、Javascript、jQuery、Bootstrap

MySQL数据库

Python的Web框架:Flask和Django

1.  安装django

pip install django

2.  创建项目

专业版的pycharm可以直接创建django项目,如果时社区版的pycharm可以参考一下这篇博客(http://t.csdnimg.cn/aMlBu),直接从终端用命令行创建项目。django中项目会有一些默认的文件和默认的文件夹。

项目文件中manage.py文件用于项目的管理、启动项目、创建app、数据管理。

asgi.py和wsgi.py两个文件是接收网络请求文件。

setting.py是项目配置文件,urls.py是URL和函数的对应请求

3.  快速上手

 确保app已注册【settings.py】

Web开发:django+前端+数据库(7),前端,django,python

编写URL和视图函数对应关系【urls.py】

Web开发:django+前端+数据库(7),前端,django,python

编写视图函数【views.py】,如果想要返回一个网页就是return render(requset, "名称.html")

Web开发:django+前端+数据库(7),前端,django,python

启动django项目,在命令行中输入python manage.py runserver

Web开发:django+前端+数据库(7),前端,django,pythonWeb开发:django+前端+数据库(7),前端,django,python

4.  模板语法

本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。

#urls.py

from django.contrib import admin
from django.urls import path
from web import views

urlpatterns = [
    #path("admin/", admin.site.urls),

    path("web/", views.index),
    path("hhh/", views.hhh),
]
#views.py

from django.shortcuts import render,HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("欢迎使用")

def hhh(request):
    name ="橘粒咕噜"
    roles = ["boss", "CEO", "CFO"]
    user_info = {"name":"屋顶橙子味", "salary":15000, 'role':"CTO"}
    data_list = [
        {"name": "屋顶橙子味", "salary": 15000, 'role': "CTO"},
        {"name": "aaa", "salary": 15000, 'role': "CTO"},
        {"name": "bbb", "salary": 15000, 'role': "CTO"},
    ]

    return render(request, "hhh.html", {"n1":name, "n2":roles})
#hhh.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>模板语法的学习</h1>
    <div>{{ n1 }}</div>
    <div>{{ n2 }}</div>

    <div>{{ n2.0 }}</div>
    <div>{{ n2.1 }}</div>
    <div>{{ n2.2 }}</div>

<!--    #循环对应值-->
    <div>
        {% for item in n2 %}
            <span>{{ item }}</span>
        {% endfor %}
    </div>
    <hr />
    {{ n3 }}
    {{ n3.name}}
    {{ n3.salary}}
    {{ n3.role}}
    <ul>
    {% for k,v in n3.items %}
        <li>{{ k }} = {{ v }}</li>
    {% endfor %}
    </ul>

    <hr />
    {{ n4.1 }}
    {{ n4.1.name}}
    {{ n4.1.salary}}
    {{ n4.1.role}}

    {% for item in n4 %}
        <div>{{ item.name }}  {{ item.salary }}</div>
    {% endfor %}


<hr/>

{% if n1 == "韩超" %}
    <h1>哒哒哒哒哒</h1>
{% else %}
    <h1>嘟嘟嘟嘟</h1>
{% endif %}


{% if n1 == "韩超" %}
    <h1>哒哒哒哒哒</h1>
    <h1>哒哒哒哒哒</h1>
{% elif n1 == "xxx" %}
    <h1>哔哔哔</h1>
{% else %}
    <h1>嘟嘟嘟嘟</h1>
{% endif %}


</body>
</html>

5.  请求和响应

#views


from django.shortcuts import render,HttpResponse,redirect
def something(request):
    # request是一个对象,封装了用户发送过来的所有请求相关数据
    #1.获取请求方式  GET/POST
    print(request.method)
    #2.在URL上传递信息
    print(request.GET)
    #3.在请求体中提交数据
    print(request.POST)
    #4.【响应】HttpResponse("返回内容"),内容字符串内容返回给请求者。
    #return HttpResponse("返回内容")
    #5.【响应】读取HTML的内容 + 渲染(替换) —> 字符串,返回给用户浏览亲
   #return render(request,'something.html', {"title":"来了"})
    #6.【响应】让浏览器重定向到其他的页面
    return redirect("http://www.baidu.com")

def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    else:
        #如果是POST登录,获取用户提交的数据
        #print(request.POST)
        username = request.POST.get("user")
        password = request.POST.get("pwd")
        if username == 'root' and password == "123":
            #return HttpResponse("登陆成功")
            return redirect("http://www.baidu.com")
        else:
            #return HttpResponse("登陆失败")
            return render(request, 'login.html', {"error_msg": "用户名或密码错误"})
#urls.py

from django.contrib import admin
from django.urls import path
from web import views

urlpatterns = [
        #请求和响应
    path('something/', views.something),
    path('login/', views.login),
]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>用户登录</h1>
<form method="post" action="/login/">
    {% csrf_token %}
    <input type="text" name="user" placeholder="用户名">
    <input type="password" name="pwd" placeholder="密码">
    <input type="submit" value="提交"/>
    <span style="color: red;">{{ error_msg }}</span>
</form>

6.  数据库操作

Django开发操作数据库更简单,内部提供了ORM框架。

6.1  安装第三方模块(注意在pycharm社区版要在命令行安装)
pip install mysqlclient
6.2  ORM

ORM可以帮助我们做两件事:

1.创建、修改、删除数据库中的表(不需要写SQL语句)。【无法创建数据库】

2.操作表中的数据。(不需要写SQL语句)

6.2.1  自己创建数据库

 启动Mysql服务;自带工具创建数据库

create database day15 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
6.2.2  Django连接数据库

在settings.py文件中进行配置和修改

DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME':'xxx',
    'USER': 'root',
    'PASSWORD': '123',
    'HOST': '127.0.0.1',
    'PORT': '3306',
    }
}
6.2.3  操作表(创建、删除、修改)

在models.py文件中创建表:

class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField(default=2)

"""
create table web_userinfo(
    id bigint auto_increment primary_key,
    name varchar(32),
    password varchar(64),
    age int
)
"""

在Terminal中执行:

python manage.py makemigrations [项目名称]

python manage.py migrate

Web开发:django+前端+数据库(7),前端,django,python

如果失败了或者没有反应可以考虑这几个问题:APP没有注册、MySQL版本过低、makemigrations后面没有加上名称等等。

如果在表中新增列,由于已存在列中可能已有数据,所以新增列中需要写上默认值语句:default=某一个值;如果默认为空则需要写上:null=True,blang=True

测试一下ORM:文章来源地址https://www.toymoban.com/news/detail-833592.html

###urls.py

from django.contrib import admin
from django.urls import path
from web import views

urlpatterns = [
        path('orm/', views.orm),
]
###views.py
from web.models import Department, UserInfo
def orm(request):
    datetime.datetime.now()

    # 1.新建 
    Department.objects.create(title="销售部")
    Department.objects.create(title="IT部")
    Department.objects.create(title="运营部")
    UserInfo.objects.create(name="aaa", password="123", age=19)
    UserInfo.objects.create(name="bbb", password="666", age=29)
    UserInfo.objects.create(name="ccc", password="666")

    #  2.删除
    UserInfo.objects.filter(id=3).delete()
    Department.objects.all().delete()

    #  3.获取数据
    #  3.1 获取符合条件的所有数据
    #data_list = [对象,对象,对象]  QuerySet类型
    data_list = UserInfo.objects.all()
    for obj in data_list:
       print(obj.id, obj.name, obj.password, obj.age)

    data_list = [对象,]
    data_list = UserInfo.objects.filter(id=1)
    print(data_list)
    # 3.1 获取第一条数据【对象】
    row_obj = UserInfo.objects.filter(id=1).first()
    print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)

    #4.更新数据
    UserInfo.objects.all().update(password=999)
    UserInfo.objects.filter(id=2).update(age=999)
    UserInfo.objects.filter(name="ddd").update(age=999)

    return HttpResponse("成功")

到了这里,关于Web开发:django+前端+数据库(7)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • [Python+Django]Web学生信息管理系统数据库设计及系统实现

    [Python+Django]Web学生信息管理系统数据库设计及系统实现

    本文我们完成数据的设计,并通过Django框架完成数据库构建同时利用Django框架模式实现学生信息管理系统的功能。 简单的包装下毕设应该没问题了。 Python,Mysql,Pycharm的安装本文就不做特别介绍了,有需要的同学请参考如下博文。 Python + Django4 搭建个人博客(二):准备开

    2024年02月03日
    浏览(26)
  • web开发中,简单的案例说明前端页面和后端以及mysql数据库的交互过程

    web开发中,简单的案例说明前端页面和后端以及mysql数据库的交互过程

            首先这是一个基于 web开发 的稿子,作者也是转java20天左右,以前也一直迷惑起那段页面是如何和后端进行交互,数据提交提交到了哪里?后端开发如何获取到前端提交的数据呢?后端数据提交到数据库中应该如何处理,接下来通过一个简单的例子,登录案例 (实

    2024年02月03日
    浏览(7)
  • Python Flask Web开发二:数据库创建和使用

    Python Flask Web开发二:数据库创建和使用

    数据库在 Web 开发中起着至关重要的作用。它不仅提供了数据的持久化存储和管理功能,还支持数据的关联和连接,保证数据的一致性和安全性。通过合理地设计和使用数据库,开发人员可以构建强大、可靠的 Web 应用程序,满足用户的需求。这里介绍:SQLAlchemy 安装pymysql和

    2024年02月10日
    浏览(38)
  • python使用flask实现前后端分离&通过前端修改数据库数据【全栈开发基础】

    python使用flask实现前后端分离&通过前端修改数据库数据【全栈开发基础】

    完整代码放到了最后,时间紧张的话直接拉到最后或点击目录【🥩 完整代码】看完整代码 这里先提一下,我们运行后端代码之前需要先建立一个名字为 python 的数据库,而后在该数据库下创建表 userinfo ,因为看到有的朋友后端代码拿过去后会运行不起来或者就是直接报错了

    2023年04月09日
    浏览(12)
  • 【python】Django——连接mysql数据库

    【python】Django——连接mysql数据库

    笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【Django专栏】 Django——django简介、django安装、创建项目、快速上手 Django——templates模板、静态文件、django模板语法、请求和响应 Django——连接mysql数据库 ORM(Object-Relational Mapping)是一种编程技术,它允许开发者使用面

    2024年02月04日
    浏览(10)
  • python+django迁移数据库成功但是数据库中还没表产生

    1、删除原来的文件(我这没了,反正就是之前执行下面两条命令生成的文件) 2、检查settings.py中DATABASES参数,首先是数据库的信息对不对。我这里是因为ENGINE=“django.db.backends.sqlite3” 因为我使用的数据库是mysql,所以修改成“django.db.backends.mysql”就好了,就这搞了一天,真

    2024年02月11日
    浏览(9)
  • Django后端开发——mysql数据库连接遇到的问题及解决

    stackflow帖子:https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost 报错: 数据库拒绝root用户的连接 settings.py中关于数据库的配置: 可以看到root用户的密码为123456 但是在mysql数据库里面查看用户信息,root的密码为空 这样的不匹配导致连接失败 之前尝试

    2024年02月20日
    浏览(37)
  • Python Django 之连接 Mysql 数据库详解

    Python Django 之连接 Mysql 数据库详解

    博客:https://blog.csdn.net/qq_34745941/article/details/122549376 若已安装,请忽略。 主要使用的文件如图 若 pip 安装失败,可进入 Python 官方库中下载 whl 文件,操作可参考: 博客:https://blog.csdn.net/qq_34745941/article/details/106341898 在 settings.py 中,配置 Mysql 的连接串 扩展: Django 也支持其

    2024年02月04日
    浏览(13)
  • Django ORM:数据库操作的Python化艺术

    Django ORM:数据库操作的Python化艺术

    Django的对象关系映射器(ORM)是其核心功能之一,允许开发者使用Python代码来定义、操作和查询数据库。这篇文章将带你深入了解Django ORM的强大之处,从基本概念到高级查询技巧,提供丰富的示例帮助你掌握使用Django ORM进行有效和高效的数据库操作。 Django ORM的目的是提供一

    2024年02月04日
    浏览(15)
  • python#django数据库一对一/一对多/多对多

    python#django数据库一对一/一对多/多对多

    搭建 # 一对一 class   TestUser(models.Model):     username=models.CharField(max_length=32)     password = models.CharField(max_length=32) class TestInfo(models.Model):     mick_name=models.CharField(max_length=32)     user=models.OneToOneField(to=TestUser,on_delete=models.CASCADE()#on_delete 删除的模式 CASCADE 级联删除 让后执行数

    2024年02月14日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包