一、Django开发环境搭建:
1.安装python:django可运行于版本python 2.7、3.x
2.安装相应的IDE
3.安装pip:sudo apt-get install python-pip(linux为例)
4.安装django:1)pip安装:sudo pip install Django(linux为例)
2)源码安装:网上找教程
5.建立django项目:django-admin startproject projectname(这里可以选择自己要建立项目的文件夹)
二、Django创建工程及应用
1.工程目录详解
manage.py:管理项目---包括数据库建立、服务器运行、测试。。。
mysite目录:
settings.py:配置文件:应用。中间件、数据库、静态目录等。。
urls.py:URL映射配置文件:决定一个url访问被哪个程序(函数)调用。。
wsgi.py:python应用程序或框架和web服务器之间的接口
2.创建应用(django中使用应用来分割功能)
2.1创建应用blog:$python manage.py startapp blog
2.2添加blog应用:mysite/setting.py->INSTALLED_APPS添加相应的应用名即可(我这里是bikeFauleDia)
3.应用目录详解:
views.py:相应逻辑函数用来跳转页面或功能处理,即相应客户http请求,进行逻辑处理,返回给用户html页面
models.py:映射数据库中的表
admin.oy:admin相关操作
test.py:测试相关
templates:用来成才html页面。返回给用户html,是由数据(模型)和模版渲染出来的
4、http请求响应过程
5、数据库连接:
1、在settings.py
文件中设置默认连接数据库的方式(注意settings.py
头部加编码)
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', #数据库类型'NAME': 'bikeData', #数据库名字'USER': 'root', #用户名'PASSWORD': 'helloworld', #密码'HOST': '127.0.0.1', #服务器地址'PORT': '3306', #端口}
}
2、在组件(App
)目录下面都有一个models.py
来写本组件(App
)的数据模型(以创建应用用户名和密码为例)
from django.db import models
# Create your models here.class User(models.Model):username = models.CharField(max_length=50)password = models.CharField(max_length=50)
3、创建映射文件:python manage.py makemigrations 组件名称
4、将映射文件中的映射到数据库中:python manage.py migrate 组件名称
补充:
一、编写Models
二、设置html中css/js等外链样式的时候:
首先在head中加载 {% load staticfiles %}
将css/js文件存放如static文件包内
然后将所要链接的对象改写成django格式: <link rel="stylesheet" href="{% static 'css/base.css' %}">
Django中页面超链接跳转:
最后一个param是参数,有就传,没有就不穿。
三、django实现简单的登录验证
views.py中:
from django.shortcuts import render
# from django.http import HttpResponse# from django import forms
from bikeFauleDia.models import User
# from django.http.response import HttpResponseRedirect, JsonResponse
from functools import wraps# Create your views here.#check_login用来判断是否登录过,并一解释器的方式过滤页面
def check_login(f):@wraps(f)def inner(request,*arg,**kwargs):if request.session.get('is_logion')=='1':return f(request,*arg,**kwargs)else:return render(request,'BikeFaultDiagnosis/login.html')return innerdef login(request):print(request.method)
# labers=Falseif request.method=='POST':username=request.POST.get('username') #获取页面用户名信息password=request.POST.get('password')user=User.objects.filter(username=username,password=password) #和数据库中用户信息对比print(user)if user:labers=Falserequest.session['is_logion']='1' #设置session信息用来验证登录情况request.session['user_id']=user[0].idreturn render(request,'BikeFaultDiagnosis/index.html',{'labers':labers})else:labers=Truereturn render(request,'BikeFaultDiagnosis/login.html',{'labers':labers})return render(request,'BikeFaultDiagnosis/login.html')#=================================#========================================@check_login #装饰器,用来验证是否登录
def index(request):return render(request,'BikeFaultDiagnosis/index.html')
urls.py中:
from django.urls import pathfrom . import views
app_name='bikeFauleDia'urlpatterns = [path('index/', views.index,name='index'),path('carContrl/', views.carContrl,name='carContrl'),path('mapp/', views.mapp,name='mapp'),path('static/', views.static,name='static'),path('table1/', views.table1,name='table1'),path('message/', views.message,name='message'),path('login/', views.login,name='login'),
]