当前位置: 首页 > news >正文

wordpress 网站建设百度拍照搜索

wordpress 网站建设,百度拍照搜索,制作网页页面,怎样能注册自己的网站文章目录 前言一、项目初始化搭建1、创建项目:test_models_django2、创建应用app01 二、配置mysql三、创建model实例,自动创建数据库表1、创建对象User类2、执行命令 四、思考问题(****)1、是否会生成新表呢(答案报错&…

文章目录

  • 前言
  • 一、项目初始化搭建
    • 1、创建项目:test_models_django
    • 2、创建应用app01
  • 二、配置mysql
  • 三、创建model实例,自动创建数据库表
    • 1、创建对象User类
    • 2、执行命令
  • 四、思考问题(****)
    • 1、是否会生成新表呢(答案报错)
    • 2、总结
  • 五、f_user_01和f_user的添加操作
    • 1、f_user_01中的添加操作(自动生成的表)
      • a、views.py
      • b、urls.py
      • c、测试
    • 2、f_user中的添加操作(手动在mysql创建的表)
      • a、views.py
      • b、urls.py
      • c、测试
      • d、print输出
    • 3、发现问题
      • a、问题
      • b、原因
      • c、解决
      • d、删除之后再运行
  • 六、总结

前言

  • 上接博文:Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld。
  • 紧跟上一篇博文,本文主要基于上一篇项目的内容,配置mysql,创建model实例,自动创建数据库表,进行操作model,并进行反思(不采用自动创建表,如何操作mysql的表)
  • 有兴趣可以添加我,一起探讨技术。
    • 加V:Fengfl1222,名称:insist科技。
    • 要资料,申请备注为:CSDN+地方,如CSDN山东。
    • 想接项目一起努力进步,申请备注为:CSDN+地方+项目,如CSDN+山东+项目,添加成功之后,可以发一份简历。
    • 本人介绍:211高校(北京交通大学)计算机研究生,本科双非计算机毕业后,校招进入军工,工作2个月离职后进入阿里,工作两年后离职考研,现已毕业,入职济南某大厂。主要技术栈:java、python、vue、react等web开发需求。已有开发团队,如果有空闲时间想一个接项目者,可以加我呦。
    • 不按上诉规则添加好友者,不予通过。
  • 项目环境
    • python: 3.11.5
    • django:4.1
      在这里插入图片描述

一、项目初始化搭建

1、创建项目:test_models_django

详细创建请看博文一:Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld

对前面的搭建流程梳理简化。

  1. django-admin startproject test_models_django:创建项目test_models_django
  2. cd test_models_django
  3. python manage.py migrate
    在这里插入图片描述
  4. python manage.py runserver:运行项目
    在这里插入图片描述
  5. 浏览器输入网址:http://127.0.0.1:8000/,结果如下,Django项目搭建成功
    在这里插入图片描述
  6. 使用pycharm打开如下。配置环境啥的请看博文一。

2、创建应用app01

  1. python manage.py startapp app01:创建应用app01

  2. 主包中配置应用app01,如下所示:
    在这里插入图片描述

  3. app01中的urls.pyviews.py。(没有则新建)
    在这里插入图片描述
    在这里插入图片描述

  4. 主包中的urls.py
    在这里插入图片描述

  5. 浏览器输入网址:http://127.0.0.1:8000/hello,结果如下,应用搭建成功
    在这里插入图片描述

二、配置mysql

主包中settings.py
默认的数据库配置如下。

DATABASES = {"default": {"ENGINE": "django.db.backends.sqlite3","NAME": BASE_DIR / "db.sqlite3",}
}

修改后如下所示

DATABASES = {"default": {"ENGINE": "django.db.backends.mysql","NAME": "数据库名","USER": "用户","PASSWORD": "密码","HOST": "ip","PORT": "3306"}
}

保存后,系统报错,缺少mysql插件,需要安装mysqlclient
在这里插入图片描述
执行以下命令安装

pip install mysqlclient

或者使用conda来安装

conda install mysqlclient

python manage.py runserver:然后成功运行。
在这里插入图片描述

三、创建model实例,自动创建数据库表

1、创建对象User类

  1. app01包中model.py,添加用户类User
  2. 子类Meta中定义表的元数据,我这里指定了表的名称为 f_user_01
from django.db import models# Create your models here.
class User_01(models.Model):u_id = models.AutoField(primary_key=True)username = models.CharField(max_length=64, null=True)name = models.CharField(max_length=64, null=True)password = models.CharField(max_length=64, null=True)sex = models.CharField(max_length=64, null=True)age = models.CharField(max_length=64, null=True)phone = models.CharField(max_length=64, null=True)email = models.CharField(max_length=64, null=True)unit = models.CharField(max_length=64, null=True)avatar = models.CharField(max_length=64, null=True)status = models.CharField(max_length=64, null=True)create_time = models.CharField(max_length=64, null=True)delete_time = models.CharField(max_length=64, null=True)update_time = models.CharField(max_length=64, null=True)class Meta:db_table = "f_user_01"

在这里插入图片描述

2、执行命令

# 生成迁移数据
python manage.py makemigrations
# 生成数据库表
python manage.py migrate 
  • 执行完第一个命令,会在当前包app01中生成初始化文件,仅仅对我们的类做了一个解读。
    在这里插入图片描述
    在这里插入图片描述

  • 执行完第二个命令,会在数据库中生成数据库表。
    在这里插入图片描述

  • 数据库表生成如下所示,只有f_user_01是我们要生成的表,上面的其他表都是Django系统默认生成的表。暂且不管。(未圈中的与本项目无关)
    在这里插入图片描述

四、思考问题(****)

  • 其实大多数时候,都是自己创建表,不需要自动创建表,那么从models.py中创建了对象类,应该怎么和自己创建的数据库表对应呢。
  • 或者说,是否可以直接通过model.py不创建新表,直接操作数据库中对应的表呢。
  • 那就实验一下吧,自己手动创建数据库表,然后手动创建models.py,在执行迁移命令,看是否还会生成新的表呢。

1、是否会生成新表呢(答案报错)

数据库创建表 f_user。具体如下所示。(如上面截图所示,我这里已经创建好了)
在这里插入图片描述
models.py添加User类,与数据库表中字段一一对应。f_user_01表一样,唯一的不一样就说最后的时间类型改为DateTime。数据库也修改成相应的了。

class User(models.Model):u_id = models.AutoField(primary_key=True)username = models.CharField(max_length=64, null=True)name = models.CharField(max_length=64, null=True)password = models.CharField(max_length=64, null=True)sex = models.CharField(max_length=64, null=True)age = models.CharField(max_length=64, null=True)phone = models.CharField(max_length=64, null=True)email = models.CharField(max_length=64, null=True)unit = models.CharField(max_length=64, null=True)avatar = models.CharField(max_length=64, null=True)status = models.CharField(max_length=64, null=True)create_time = models.CharField(max_length=64, null=True)delete_time = models.CharField(max_length=64, null=True)update_time = models.CharField(max_length=64, null=True)class Meta:db_table = "f_user"

在这里插入图片描述
执行命令如下,看是否会报错等其他情况。

# 生成迁移数据
python manage.py makemigrations
# 生成数据库表
python manage.py migrate 

执行第一个命令后,migrations中生成了一个新的映射迁移。新的类,生成了一个新的模型类。
在这里插入图片描述
在这里插入图片描述
执行第二个命令后,报错,如下:(说明表已经存在)
在这里插入图片描述

2、总结

models.py中指定了表名,如果数据库表中没有则创建,有则报错。
接下来对这两个表进行添加操作。

五、f_user_01和f_user的添加操作

1、f_user_01中的添加操作(自动生成的表)

a、views.py

from django.http import HttpResponse
from app01 import models
import jsondef hello_world(request):return HttpResponse("app01 Hello, World!")def addUser01(request):models.User_01.objects.create(username='admin', name='冯坚持', password='123456', sex='男', age='18',phone='1234567890', email='123456789@163.com', unit='1-1-1', avatar='asdad',status='1', create_time='20240104 12:12:22', delete_time='20240104 12:12:22',update_time='20240104 12:12:22')result = {'code': 0,'msg': 'success','data': ''}return HttpResponse(json.dumps(result, ensure_ascii=False), content_type='application/json')

在这里插入图片描述

b、urls.py

from django.urls import path
from . import viewsurlpatterns = [path('hello/', views.hello_world),path('addUser01/', views.addUser01),
]

在这里插入图片描述

c、测试

  1. 浏览器输入:http://127.0.0.1:8000/addUser01/
    在这里插入图片描述
  2. 查看mysql数据库,数据插入成功
    在这里插入图片描述

2、f_user中的添加操作(手动在mysql创建的表)

a、views.py

from django.http import HttpResponse
from app01 import models
import json
from django.utils import timezone
from datetime import datetimedef addUser(request):print(timezone.now())  # 使用 timezone.now() 获取当前时间print(datetime(2023, 6, 6, 12, 0, 0))  # 手动设置 datetime 值,可以使用 Python 的 datetime 模块models.User.objects.create(username='admin', name='冯坚持', password='123456', sex='男', age='18',phone='1234567890', email='123456789@163.com', unit='1-1-1', avatar='asdad',status='1', create_time=timezone.now(), delete_time=timezone.now(),update_time=timezone.now())result = {'code': 0,'msg': 'success','data': ''}return HttpResponse(json.dumps(result, ensure_ascii=False), content_type='application/json')

在这里插入图片描述

b、urls.py

from django.urls import path
from . import viewsurlpatterns = [path('hello/', views.hello_world),path('addUser01/', views.addUser01),path('addUser/', views.addUser),
]

在这里插入图片描述

c、测试

  1. 浏览器输入:http://127.0.0.1:8000/addUser/
    在这里插入图片描述
  2. 查看mysql数据库,数据插入成功
    在这里插入图片描述

d、print输出

在这里插入图片描述

3、发现问题

a、问题

在运行界面,发现如下提示。
在这里插入图片描述

b、原因

意思是有一个没有应用的迁移类,因为在第四章,执行了命令python manage.py makemigrations,所以在migrations中生成了对应迁移类User,但是其表f_user在数据库中已经存在了,所以,在执行第二个命令python manage.py migrate 报错了,提示表已经存在。
这就是出现上面警告的原因。
在这里插入图片描述

c、解决

对于数据库中已经存在的表,只在models.py中声明即可,不用执行迁移的两个命令。现在目前的情况,删除0002__user.py即可。
在这里插入图片描述

d、删除之后再运行

在这里插入图片描述
在执行f_user表的添加请求测试如下。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、总结

  1. 配置mysql,需要安装mysqlclient,编写models的实体类,通过迁移命令可以自动生成mysql数据库表结构。
  2. 如果数据库表中已经创建好表,则只在model.py中创建对应实体类即可,不用执行迁移的两个命令。(这里就和java对应上了,直接编写对应实体类和sql即可)
  3. 如果数据库没有创建好表,可以在models设计号实体类,使用迁移命令即可自动生成mysql数据库表结构。
http://www.hkea.cn/news/367917/

相关文章:

  • 如何用pageadmin做网站品牌宣传策略有哪些
  • 网站免费优化软件需要优化的地方
  • 24小时学会网站建设下载厦门百度竞价开户
  • 怎样学做网站网站权重等级
  • 做网站好还是做淘宝好北京seo推广
  • 郑州门户网站建设哪家好网站首页不收录
  • 网站制作营销型哪些网站可以发广告
  • 最新政府网站建设理念广州头条新闻最新
  • 济宁网站建设神华线上推广的三种方式
  • 我要表白网站在线制作如何做网站的教程
  • 福州论坛建站模板策划网络营销活动
  • 网站建设 天津百度市场应用官方app
  • 动态网站制作流程友情链接的定义
  • 企业网站开发方案免费建立一个网站
  • 网站引导页面制作的四个任务名称推广引流的10个渠道
  • 南宁网站建设制作后台网站关键词优化价格
  • 微信小程序商城制作公司宁波seo推广服务
  • 响应式购物网站公司seo是什么意思
  • 360未经证实的网站如何做电商运营方案
  • 网站建设类公司排名营销方案范文100例
  • 郑州网站设计 郑州网站开发网络优化有前途吗
  • 黑河做网站首页关键词排名优化
  • 网站二级域名怎么解析公司网络搭建
  • wordpress做网店win10优化大师是官方的吗
  • 弄个做网站公司产品宣传
  • 商品房建设信息网站googleplay商店
  • 菏泽 网站建设优化工具箱
  • 网站建设找哪家公司百度搜索热度
  • 网页设计论文引言北海百度seo
  • 网站空间哪家做的好网络营销的常用工具