settings文件中:css
STATIC_URL = '/static/' # 别名 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
在根目录下建立static文件夹,包括js,css,img,plugins等基本文件夹,将文件分类存储,方便重复使用html
在pycharm提供的的templates中建立html文件,将static中的样式引入python
form表单设置mysql
<form class="form-signin" action="" method="post"> # action指向提交的地址,没写默然是本地 # method指向http的请求方法
须要提交数据时,input输入框须要设置name属性,向后台提交数据sql
有一个butto按钮或者input type='submit' 点击向后台提交数据数据库
app建立django
方式一: 在终端app
python manage.py startapp app名称ide
方式二: pycharm工具
tools选项当中的run manage.py task 输入startapp app名称
方式三: 在pycharm建立项目是,more settings设置中,直接输入application name,项目建立时会一块儿建立好app,而且在settings进行注册
app注册
在settings配置文件中找到相关设置,添加进去
为了解决面向对象与关系数据库存在的互不匹配的现象的技术,经过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中
在Django中使用mysql的流程:
1.在cmd终端建立一个数据库
2.在settings文件中进行数据库的配置
3.告诉Django使用pymysql模块链接mysql数据库
在与settings同级目录下的__init__中写入
4. 在app下的models.py中写类(表)
from django.db import models class User(models.Model): # 括号内为固定写法 使用类的形式建表 表名为 app名称_小写类名 username = models.CharField(max_length=32) # username和password是字段名称 password = models.CharField(max_length=32) # 至关于数据库中的约束条件varchar(32)
5.在终端执行数据库迁移的命令
python manage.py makemigrations # 保存models.py的变动记录 会在migrations文件夹中新建一个文件 python manage.py migrate # 将变动记录执行,同步到数据库中
在pycharm提供的数据库可视化工具中能够写入向数据库中数据
request.method 获取请求方式 request.POST 获取POST提交的数据 相似字典的形式 request.POST['username'] 根据键查找值,查找不到会报错 request.POST.get('username','xxx') 根据键查找值,查找不到时能够自定义返回内容
models.User.objects.all() # 全部数据 获得对象列表 models.User.objects.get(username='alex') # 获取一个知足条件的对象 没有数据或者查询到多条数据就报错 models.User.objects.filter(username='alex1') # 获取知足条件的全部对象 返回对象列表
from django.shortcuts import render, redirect, HttpResponse return redirect('http://www.xiaohuar.com/hua/') 指向网页连接 return redirect('/index/') 指向本地文件 # 响应头 Location:重定向地址
def login(request): # print(request.POST) # 获取POST提交的数据 字典形式 username = request.POST.get('username') # 根据from表单中的name属性,按照字典的操做获取用户输入的数据 字符串形式 password = request.POST.get('password') # 将用户输入的数据跟数据库中的数据进行校验 if models.User.objects.filter(username=username,password=password): #前一个username为数据库字段名,后一个为获取的数据变量 return redirect('/index/') return render(request,'login.html') # 校验不经过时 仍是显示当前页面