Django web开发笔记

一、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 inner
 
 
def login(request):
    print(request.method)
#     labers=False
    if 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=False
            request.session['is_logion']='1'  #设置session信息用来验证登录情况
            request.session['user_id']=user[0].id
            return render(request,'BikeFaultDiagnosis/index.html',{'labers':labers})
        else:
            labers=True
            return 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 path

from . 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'),
]

猜你喜欢

转载自blog.csdn.net/David_Yang_7/article/details/83576129
今日推荐