zoukankan      html  css  js  c++  java
  • 项目那几步走:先配置setting路径文件、创建数据库、执行数据库迁移命令、配置mysql数据库信息、注册app、注释中间件、pymysql替换mysqldb-配置urls路由-继续视图函数-然后HTML页面展示-HTML里面导入css文件、models配置数据库表、

    django使用mysql数据库:

      首先cmd创建库

    1、settings:

    """
    Django settings for day42 project.

    Generated by 'django-admin startproject' using Django 1.11.26.

    For more information on this file, see
    https://docs.djangoproject.com/en/1.11/topics/settings/

    For the full list of settings and their values, see
    https://docs.djangoproject.com/en/1.11/ref/settings/
    """

    import os

    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


    # Quick-start development settings - unsuitable for production
    # See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/

    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = 't2#m1=lilserv388oi=m6i=4b7@-lj6@+kg2-_^oa)wdpi5(96'

    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True

    ALLOWED_HOSTS = []


    # Application definition

    INSTALLED_APPS = [
    'django.contrib.admin', #系统内置app
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    "app01.apps.App01Config", #注册app
    ]

    MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    #'django.middleware.csrf.CsrfViewMiddleware',  #注释中间件
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]

    ROOT_URLCONF = 'day42.urls'

    TEMPLATES = [
    {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join ( BASE_DIR, 'templates' )]
    ,
    'APP_DIRS': True,
    'OPTIONS': {
    'context_processors': [
    'django.template.context_processors.debug',
    'django.template.context_processors.request',
    'django.contrib.auth.context_processors.auth',
    'django.contrib.messages.context_processors.messages',
    ],
    },
    },
    ]

    WSGI_APPLICATION = 'day42.wsgi.application'


    # Database
    # https://docs.djangoproject.com/en/1.11/ref/settings/#databases
    #配置数据库信息:
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': "day43",
    'HOST': "127.0.0.1",
    'PORT': 3306,
    'USER': "root",
    'PASSWORD': "123",
    }
    }
    #默认使用mysqldb的模块 要使用pymysql替换mysqldb
    import pymysql
    pymysql.install_as_MySQLdb()

    # Password validation
    # https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators

    AUTH_PASSWORD_VALIDATORS = [
    {
    'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
    'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
    'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
    'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
    ]


    # Internationalization
    # https://docs.djangoproject.com/en/1.11/topics/i18n/

    LANGUAGE_CODE = 'en-us'

    TIME_ZONE = 'UTC'

    USE_I18N = True

    USE_L10N = True

    USE_TZ = True


    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/1.11/howto/static-files/
    #配置路径文件:

    STATIC_URL = '/static/'

    STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static')
    ]
    2、urls路由:
    """day42 URL Configuration

    The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.11/topics/http/urls/
    Examples:
    Function views
    1. Add an import: from my_app import views
    2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
    Class-based views
    1. Add an import: from other_app.views import Home
    2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
    Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
    """
    from django.conf.urls import url
    from django.contrib import admin
    from django.shortcuts import HttpResponse, render
    from app01 import views
    #配置urls路由

    urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', views.index),
    url(r'^modal/', views.modal),
    url(r'^login/', views.login),
    ]
    3、views视图函数:
    from django.shortcuts import render,HttpResponse

    # Create your views here.

    def index(request):
    print(request.path_info)
    # return HttpResponse('<h1>index</h1>')
    return render(request, 'index.html')

    def modal(request):
    return render(request, 'modal.html')

    def login(request):
    return render(request,"login.html")
    4、HTML页面展示:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    {# 增加bootstrap样式:#}
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.3.7-dist/css/bootstrap.min.css">
    {# 导入css文件:#}
    <link rel="stylesheet" href="/static/css/signin.css">
    </head>
    <body>

    <div class="container">

    <form class="form-signin">
    <h2 class="form-signin-heading">Please sign in</h2>
    <label for="inputEmail" class="sr-only">Email address</label>
    <input type="email" id="inputEmail" class="form-control" placeholder="Email address" required="" autofocus="">
    <label for="inputPassword" class="sr-only">Password</label>
    <input type="password" id="inputPassword" class="form-control" placeholder="Password" required="">
    <div class="checkbox">
    <label>
    <input type="checkbox" value="remember-me"> Remember me
    </label>
    </div>
    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
    </form>

    </div> <!-- /container -->


    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>


    </body>
    </html>
    5、导入css文件:
    {#    增加bootstrap样式:#}
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.3.7-dist/css/bootstrap.min.css">
    {# 导入css文件:#}
    <link rel="stylesheet" href="/static/css/signin.css">
    6、models配置数据库表:
    from django.db import models

    # Create your models here.

    #定义User表、username是具体的字段、CharField是可变长的数据类型:
    class User(models.Model):
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=32)
    执行数据库迁移的命令:
    python manage.py makemigrations(检测已经注册的app)

     python manage.py migrate(真正的迁移命令:)

     database-database source-MY SQL:

     app01和表名组合:

    双击表名增加数据并提交:

     所有的功能通过类操作:

    models.类名.objects.all()--获取表里面所有的数据、获取的是列表
    结果:<QuerySet [<User: User object>, <User: User object>, <User: User object>]> <class 'django.db.models.query.QuerySet'>
    models.User.objects.get(username="alex",)--获取一条数据、获取的是对象、查询不到报错、查询多条数据报错
    结果:User object <class 'app01.models.User'>
    models.User.objects.filter(username="alex",password="dsb")--过滤获取对象列表
    结果:<QuerySet [<User: User object>]> <class 'django.db.models.query.QuerySet'>

     obj = models.Publisher.objects.create(name=pub_name)--    创建

    models.Publisher.objects.filter(pk=pk).delete() # 对象列表--    删除
    models.Publisher.objects.get(pk=pk).delete() # 对象--        删除

    obj.name = pub_name # 内存中修改属性            修改
    obj.save() # 提交保存

    models.Publisher.objects.filter(pk=pk).update(name=pub_name)  修改

  • 相关阅读:
    机器人搬重物(BFS)
    POJ1386Play on Words(欧拉回路)
    轰炸
    杂务(动态规划)
    Prism框架的Regions使用
    MVVM(使用Prism框架)开发WPF
    WPF显示数据库内容
    UI案例
    VS的快捷操作
    谷歌浏览器插件安装、VIP看视频、解除百度网盘限速
  • 原文地址:https://www.cnblogs.com/zhang-da/p/12031385.html
Copyright © 2011-2022 走看看