【django学习笔记】02 第一个Django项目与ORM简单操作梳理
2018-12-07 22:03
615 查看
Django项目的创建
- setting.py文件
配置html文件存放的位置
配置静态文件存放的位置 - Templates
存放HTML文件的配置
Base_DIR是你的项目的根目录路径 - static静态文件
存放css/js/图片 - 出现403报错
注释掉setting.py带有csrf的那一行,大概46
登录的完整示例
form表单往后端提交数据需要注意哪三点:
- form不是from,所有获取用户输入的标签都应该放在form里面,并且必须要有name属性
- action属性控制往哪提交,method一般都设置成post
- 提交按钮必须是type=submit,不能是别的类型
get请求:
- 浏览器请求一个页面
- 搜索引擎检索关键字的时候
post请求:
- 浏览器向服务器提交数据,比如登录、注册等
render字符串替换:
- html内:
<p class="text-danger text-center">{{ error }}</p>
#两个花括号表示的值,为传过去的变量名 - 函数内:
error_msg = ""#初始化error_msg if email == "alex@123.com" 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能做的事
- 操作数据表----->创建表/删除表/修改表
- 操作数据行----->数据的增删改查
- 不能创建数据库,需要自己动手创建
使用Django的ORM详细步骤
- 自己动手创建数据库
create database 数据库名; - 告诉Django连接哪一个数据库
在Django项目中设置连接数据库的相关配置
DATABASES = { 'default': { #连接的数据库类型 'ENGINE': 'django.db.backends.mysql', #连接数据库的地址 'HOST':'127.0.0.1', #端口 'PORT':3306, #数据库名称 'NAME': "mysitedb", #用户 'USER':'root', #密码 'PASSWORD':'123456' } }
- 连接MySQL数据库
在项目目录/init.py文件中:
import pymysql
#告诉django用pymysql来代替默认的MySQLdb
pymysql.install_as_MySQLdb()
- 在app下面的models.py文件中定义一个类,这个类必须继承models.Model
class 类名(models.Model):
- 执行两个命令
python3 manage.py makemigrations python3 manage.py migrate
利用ORM实现查询的操作
- urls定义一个路径和函数的对应关系
urlpatterns = [ path('login/', views.login), path('userlist/', views.user_list), ]
- 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})
- 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")
数据库中的对应关系梳理
- 数据表对应类
- 数据库表中的每一个字段对应类的每一个属性
- 数据表中的一条记录对应类的一个实例化对象
相关文章推荐
- Django框架学习笔记(27.Ajax简单操作)
- python学习笔记-Day022 - django ORM操作
- Django框架学习笔记(10.基于ORM实现简单的用户登录)
- python+Django+pycharm+mysql 环境搭建及第一个项目学习笔记
- 【django 学习笔记】02-视图和URL配置
- ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
- Lua学习笔记--简单的时间操作
- 构建第一个Android项目 (学习笔记二)
- Django学习笔记(二)创建一个简单页面
- Python学习笔记23:Django构建一个简单的博客网站(一个)
- Maven学习笔记第一节(第一个项目)
- OpenGL_Qt学习笔记之_02(绘制简单平面几何图形)
- Unity学习笔记(二)——第一个Unity项目Hello Unity
- HBase学习笔记-API简单操作
- Django学习笔记-简单的Demo
- Django搭建简单网页的学习笔记之四(Form)
- Linux学习笔记:linux下的文件以及对文件的简单操作
- OneThink学习笔记02----数据字典(即OneThink项目数据库里的表及其字段)
- Scala 学习笔记(4)-集合类简单操作
- 嵌入式开发之C基础学习笔记02--第一个例子分析