• 2019.03.18 连接my sql


    11.登陆功能(链接MySQL)

    python manage.py starapp movie

    新建一个应用模块之后要记得到setting添加这个应用模块

    在python2中你还有去导入一个MySQL_pathon 的第三包

    第一步修改settings.py的文件

    在文件上边会有一个链接会介绍,如何去链接数据库

    端口,用户名,密码,名称,主机地址,链接器

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',#数据库连接器
    'NAME': 'logindemo',#数据库名称
    'HOST':'127.0.0.1',#数据库主机地址
    'PORT':'3306',#数据库端口
    'USER':'root',#数据库用户名
    'PASSWORD':'123456'#数据库密码
    }
    }

    配置模型类(student/models.py)

    自己理解应该就是创建数据表,在models中写数据的字段和类型

    class Stu(models.Model):
         sname = models.CharField(max_length=20,unique=True)
         spwd = models.CharField(max_length=20,unique=True)

    生成数据库表

    #创建当前应用的迁移文件
    python manage.py makemigrations student

    #生成数据库表
    python manage.py migrate

    再配置url

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

    import views

    urlpatterns = [
      url(r'^$',views.login_view),
      url(r'^login/',views.to_login_view)
    ]

    配置函数试图

    #处理登录功能
    def doLogin_view(request):
    #接收请求参数
      uname = request.POST.get('uname','')
      pwd = request.POST.get('pwd','')

    #判断是否登录成功
      count = Stu.objects.filter(sname=uname,spwd=pwd).count()

      if count==1:
        return HttpResponse('登录成功!')
      else:
        return HttpResponse('登录失败!')

    12.影片展示(数据库逆向生成)

    1.数据库有东西了,创建模型类与数据库连接。那如何逆向连接呢

    如下,通过命令执行的。指定到models.py文件中

    创建模型类(逆向生成)

    python manage.py inspectdb>movie/models.py

    2.配置url(与上做法一样)

      去执行views中的函数,去解析html,呈现画面

    创建视图函数

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals

    from django.shortcuts import render
    from models import *
    import math

    def page(num=1,size=20):
    num = int(num)
    if num < 1:
    num = 1

    # 计算总页数
    total_records = Movie.objects.count()
    total_pages = int(math.ceil(total_records * 1.0 / size))


    if num > total_pages:
    num = total_pages

    movies = Movie.objects.all()[((num - 1) * size):(num*size)]


    return movies,num


    # Create your views here.
    def index_view(request):
    num = request.GET.get('num',1)

    ms,n = page(num)

    pre_page = n-1
    next_page = n+1


    return render(request,'movie.html',{'movies':ms,'pre_page':pre_page,'next_page':next_page})

    创建HTML

    {% for movie in movies %}

      <li>

        <a href = "{{movie.mlik}}><img src="{{movie.ming}}"/></a?

        <h1 class = "h1"><movie.name}}</h1>

        <span class = "tip">{{movie.mdesc }}</span>

      </li>

    {% endfor %}

    <div id="pagebar">
    <a href="/movie/?num={{ pre_page }}">上一页</a>
    <a href="/movie/?num={{ next_page }}">下一页</a>
    </div>

  • 相关阅读:
    后缀数组-另辟蹊径
    Project Euler 不定期更新
    Educational Codeforces Round 93 (Rated for Div. 2)
    Codeforces Round #664 (Div. 2)
    lower_bound和upper_bound的用法
    Codeforces Round #663 (Div. 2)
    Codeforces Round #661 (Div. 3)
    质数笔记
    C++运算符的优先级
    图的构建
  • 原文地址:https://www.cnblogs.com/Py-king/p/10552420.html
Copyright © 2020-2023  润新知