一、安装
1、 安装
pip install Django==1.11.11(卸载django:pip uninstall django)
或者在pycharm里安装
2、 创建第一个Django项目
命令行创建
django-admin startproject 项目名
PyCharm
File -> new Project -> 左侧选第二项,右侧第一项是路径,第二项是选python版本
3、启动Django项目
(1) 命令行启动
在Django项目的根目录下,执行下面的命令
python manage.py runserver
python manage.py runserver 8080
停止:Ctrl + C
(2) PyCharm启动,点绿色三角,注意左侧框中的名字一定要是项目名称!
二、入入入门
1、文件功能
2、在urls.py里设置访问的路径及其对应函数
返回一个字符串
访问http://127.0.0.1:8000/login/
返回一个登陆页面
html文件要放在templates文件夹下,在settings.py配置文件里已经默认设置了
访问http://127.0.0.1:8000/login/
css、js、图片等静态文件路径
在settings.py最后面可以看到STATIC_URL = ‘/static/’
在该目录下创建一个css文件和js文件
然后在html文件中引用该css文件和js文件,一定要以/static/这个别名为开头
三、登陆页面示例
把boostrap和jquery文件放到static文件夹下
把登陆页面的html放到templates文件夹下
出现黄色403把set文件里46行注释掉
在登陆按钮后面加上一个
,使用模板语言设置一个error_msg变量,使用{{ }}的格式
设置表单将填入的数据以post的方式传送到login页面
Django接收到访问/login/的请求,就调用login()函数
根据请求的方法来判断是第一次访问该页面还是要输入账号密码后要登陆,第一次访问该页面默认是GET方法,则将登陆页面返回给用户,如果是输入账号密码后使用的post方法,则获取request对象里的值,判断账号密码是否正确,正确的话跳转到index页面,错误的话进行提示。这里设置了一个error_msg变量的值
Login函数
四、部分要素
-
form表单提交数据的三个要素
(1) form标签必须要有action和method属性
(2)所有获取用户输入的标签必须放在form表单中,必须要有name属性
(3)必须要有submit按钮 -
Django 基础必会三件套
from django.shortcuts import HttpResponse, render, redirect
(1) HttpResponse:返回一个指定的字符串时
(2)render:返回一个HTML文件
(3)redirect:跳转 -
request相关的属性
(1)request.method --> 返回的是请求的方法(全大写):GET/POST …
(2)request.GET --> 取得是URL里面的参数,类似于字典的数据结构
(3)request.POST --> post提交的数据,类似于字典的数据结构 -
Django的模板语言
{{ 变量名 }} -
程序连mysql,使用pymysql模块
(1)导入pymysql模块
(2)创建连接
(3)获取执行命令的游标
(4)用游标去执行SQL语句
(5)获取SQL语句的执行结果
(6)关闭游标
(7)关闭连接
6、Django项目app --> 项目中又分了一级Python包,不同的功能放到不同的包里面
(1)创建app
python manage.py startapp app0
(2)告诉Django创建了一个app
在settings.py找那个的INSTALLED_APPS中添加新创建的app
四、Django中ORM的使用
1、 用处
操作数据表
操作数据行
2、 使用
(1) 手动创建一个数据库
-> create database mysite;
在这里插入图片描述
(2)在settings.py里告诉Django连哪个数据库
默认使用自带的一个数据库
修改为mysql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #连接数据库的类型
'NAME': 'mysite', #数据库名
'HOST':'127.0.0.1', #数据库主机
'PORT':3306,
"USER":'root',
'PASSWORD':'123',
}
}
- 用什么连数据库?
利用第三方的包,比如第三方包:pymysql和MySQLdb
告诉Django用pymysql模块代替默认的MySQLdb去连接MySQL数据库
和settings.py同级的__init__.py文件,写上:
import pymysql
pymysql.install_as_MySQLdb()
告诉django,用pymysql来代替默认的mysqldb
- 在app/models.py的文件中创建类
类必须继承models.Model
class User(models.Model):
id = models.AutoField(primary_key=True) #->创建一个自增的ID列作为主键
email = models.CharField(max_length=32) #->varchar(32)
pwd = models.CharField(max_length=32) #->varchar(32)
- 另个命令
(1) python manage.py makemigrations --> 找个小本本把models.py的变更记录一下
后面可以跟app名称
在migrations文件夹中查看变更记录
(2) python manage.py migrate --> 把上面的变更记录翻译成SQL语句,去数据库执行,后面可以跟app名称
查看表结构
如果要删除或修改表结构,则把models.py里的类注释或修改,然后还是执行两个命令
python manage.py makemigrations
python manage.py migrate
(3)pycharm连接mysql
打开控制台,可以下sql语句
点击数据表可以添加删除提交
6. ORM查询
User.objects.filter(email=’’, pwd=’’)
导入user类
修改login()函数,从数据库获取用户名和密码进行验证
def login(request):
print(request.GET)
print('-' * 120)
error_msg = ''
# 需要判断
# 根据请求的方法来做判断
if request.method == 'POST':
# 如果是第二次来,表示填完了要给我发数据了 --> POST
email = request.POST.get('email')
pwd = request.POST.get('pwd')
print(email, pwd)
#查询值为xx的数据
ret = User.objects.filter(email=email, pwd=pwd)
if ret:
return redirect('/index/')
else:
# 登录失败
# 提示用户邮箱或密码错误
error_msg = '邮箱或密码错误'
# 如果你是第一次来,是跟我要一个登录页面用来填写数据的 --> GET
return render(request, 'login.html', {'error_msg': error_msg})