您的位置:首页 > 移动开发

day 53-django-静态文件配置和使用,登录示例,app,ORM

2020-01-14 11:16 489 查看

静态文件目录规范

第一步:

在settings.py内添加:

STATIC_URL = '/static/'

STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static')
]

 

第二步:

创建目录:

 

django登录示例

第一步:

目前要提交POST请求:在settings.py中注释掉MIDDLEWARE中的 django.middleware.csrf.CsrfViewMiddleware

 

from django.shortcuts import HttpResponse, render, redirect

#HttpResponse  返回的是一个对象类型的数据
#render     返回的是函数类型的数据
#redirect   重定向,跳转

def login(request):
# print(request.method)  #查看请求是get的还是post的类型
if request.method == "GET":  #如果请求的类型是"GET"的就返回原数据(登录页面)
return render(request, 'login.html')
elif request.method == "POST":  #如果请求是"POST"的就意味着用户要提交form表单,接下来进行账号密码校验
# print(request.POST,type(request.POST)) #查看post请求提交进来的数据是什么类型的
username = request.POST.get('username')
password = request.POST.get('password')
if username == 'admin' and password == '123':
return redirect('http://www.baidu.com')    #跳转到新的页面

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/',index),
url(r'^login/',login),
]

 

 

form的使用:
1. action="" method="post" 提交的地址 请求的方式 post
2.<form class="form-signin" method="post" novalidate> 开启novalidate是关闭前端校验功能,可以直接提交数据
3. input标签必须要有name属性,这样数据提交到django后端之后后端会拿name获取用户输入的内容

 

app的使用

第一步:

1.创建:
Python manage.py startapp 名称

pycharm中
tools run manage.py task startapp app名称

 

创建完app之后会自动生成文件夹

migrations:存放迁移文件的,跟数据库相关的东西

admin:django给我们提供的一个后台管理的一个工具,将来创建数据库可以用来管理数据库里的数据

apps:跟app相关的一些东西,里面有个类,注册的时候需要用到

models:跟orm相关,标的内容就写在里面

views:写函数的

2.注册
INSTALLED_APPS = [
...
'app01',
'app01.apps.App01Config', # 推荐写法
]

 

orm的使用

第一步:

在settings.py文件中添加数据库的配置:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',   #告诉django用mysql数据库库
'NAME': 'django_day53',   #库名
'HOST':'127.0.0.1',   #ip地址
'PORT':'3306',  #端口
'USER':'root',  #连接数据库的用户
'PASSWORD':'123'  #密码
}
}

 

 

第二步:

在__init__.py文件中添加如下信息

import pymysql #因为django里面默认的情况下是使用mysqlDB的模块去连接mysqld的数据库的,但是mysqlDB这个模块只支持python2,所以这里需要替换掉这个模块,用pymysql
pymysql.install_as_MySQLdb()  #替换点mysqlDB模块

 

 

第三步:

在app下的models.py中写类(),这个类对应的就是数据库中的表.

 

from django.db import models

class User(models.Model): #继承models.Model类
username = models.CharField(max_length=32)   #对应数据库中的varchar(),定义字段的长度
password = models.CharField(max_length=32)   #这就算写好了一张表了

 

第四步:

执行数据库的迁移

python manage.py makemigrations  #创建迁移文件(刷新models.py)的变更记录

 python manage.py migrate   #迁移,在数据库中生成表

 

表名是以app项目名称加上类名来命名的.

用户登录数据库校验示例

from django.shortcuts import HttpResponse, render, redirect
from app01 import models
def login(request):
# print(request.method)  #查看请求是get的还是post的类型
if request.method == "GET":  #如果请求的类型是"GET"的就返回原数据(登录页面)
return render(request, 'login.html')
elif request.method == "POST":  #如果请求是"POST"的就意味着用户要提交form表单,接下来进行账号密码校验
# print(request.POST,type(request.POST)) #查看post请求提交进来的数据是什么类型的
username = request.POST.get('username')
password = request.POST.get('password')
if models.User.objects.filter(username=username,password=password):
return redirect('http://www.baidu.com')
else:
return HttpResponse('账号名密码错误')

 

 get 和 filter

models.User.objects.all()    #所有数据,对象列表
models.User.objects.get(username='alex')  # 获取一个满足条件的对象  没有数据 或者 多条数据就报错
models.User.objects.filter(username='alex1', password='alexdsb')  # 获取满足条件的所有对象,对象列表,如果没有不会报错,会返回空列表

 

转载于:https://www.cnblogs.com/yanpeizhang/p/10612627.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
anyan5612 发布了0 篇原创文章 · 获赞 0 · 访问量 57 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: