【django学习笔记】02 第一个Django项目与ORM简单操作梳理

Django项目的创建

  1. setting.py文件
    配置html文件存放的位置
    配置静态文件存放的位置
  2. Templates
    存放HTML文件的配置
    Base_DIR是你的项目的根目录路径
  3. static静态文件
    存放css/js/图片
  4. 出现403报错
    注释掉setting.py带有csrf的那一行,大概46

登录的完整示例

form表单往后端提交数据需要注意哪三点:

  1. form不是from,所有获取用户输入的标签都应该放在form里面,并且必须要有name属性
  2. action属性控制往哪提交,method一般都设置成post
  3. 提交按钮必须是type=submit,不能是别的类型

get请求:

  1. 浏览器请求一个页面
  2. 搜索引擎检索关键字的时候

post请求:

  1. 浏览器向服务器提交数据,比如登录、注册等

render字符串替换:

  1. html内:
    <p class="text-danger text-center">{{ error }}</p>
    #两个花括号表示的值,为传过去的变量名
  2. 函数内:
error_msg = ""#初始化error_msg
if email == "[email protected]" and pwd == "123"
	return HTTPResponse("登录成功")
else:
	error_msg = "邮箱或密码错误"
return render(request,"login.html",{"error":error_msg})

redirect跳转
回复一个特殊的响应,这个响应会让用户的浏览器请求指定的URL

redirect("http://baidu.com")

Django中的APP

方便我们在一个大的Django项目中,管理实现不同的业务功能,在创建APP是,在django项目的根目录中写入app的名字

ORM

ORM的对应关系

类---------->数据表
对象------->数据行
属性------->字段

ORM能做的事

  1. 操作数据表----->创建表/删除表/修改表
  2. 操作数据行----->数据的增删改查
  3. 不能创建数据库,需要自己动手创建

使用Django的ORM详细步骤

  1. 自己动手创建数据库
    create database 数据库名;
  2. 告诉Django连接哪一个数据库
    在Django项目中设置连接数据库的相关配置
DATABASES = {
	'default': {
		#连接的数据库类型
		'ENGINE': 'django.db.backends.mysql',
		#连接数据库的地址
		'HOST':'127.0.0.1',
		#端口
		'PORT':3306,
		#数据库名称
		'NAME': "mysitedb",
		#用户
		'USER':'root',
		#密码
		'PASSWORD':'123456'
			}
	}
  1. 连接MySQL数据库
    在项目目录/init.py文件中:
    import pymysql
    #告诉django用pymysql来代替默认的MySQLdb
    pymysql.install_as_MySQLdb()
  2. 在app下面的models.py文件中定义一个类,这个类必须继承models.Model
    class 类名(models.Model):
  3. 执行两个命令
python3 manage.py makemigrations
python3 manage.py migrate

利用ORM实现查询的操作

  1. urls定义一个路径和函数的对应关系
urlpatterns = [
		path('login/', views.login),
		path('userlist/', views.user_list),
		]
  1. views:
def user_list(request):
	#去数据库中查询所有的用户
	#利用ORM这个工具去查询数据库,不用自己去查询
	ret = models.UserInfo.objects.all()#[UserInfo Object,UserInfo Object]
	print(ret[0].id,ret[0].name)
	#打开user_list.html文件,进行字符串的替换
	return render(request,"user_list.html",{"user_list":ret})
  1. user_list.html:
<table border="1">
		<thead>
		<tr>
			<th>id值</th>
			<th>用户名</th>
		</tr>
		</thead>
		<tbody>
		{% for user in user_list %}
			<tr>
			<td>{{ user.id }}</td>
			<td>{{ user.name }}</td>
			</tr>
		{% endfor %}
		</tbody>
		</table>

利用ORM实现添加的操作

添加用户的函数,数据库中的id要设为自增

def add_user(request):
	if request.method == "POST":
	#用户填写了新的用户名,并发送了POST请求过来
	new_name = request.POST.get("username",None)
	#去数据库中新创建一条用户记录
	models.UserInfo.objects.create(name=new_name)
	#添加成功后,直接跳转到用户列表页
	return redirect("/user_list/")
	#第一个请求页面的时候,就返回一个页面,页面上有两个框让用户填写
	return render(request,"add_user.html")

数据库中的对应关系梳理

  1. 数据表对应类
  2. 数据库表中的每一个字段对应类的每一个属性
  3. 数据表中的一条记录对应类的一个实例化对象

猜你喜欢

转载自blog.csdn.net/weixin_42864175/article/details/84887812