zoukankan      html  css  js  c++  java
  • Django与数据库交互

    1. 生成Django框架:cmd->CD进入包含django-admin.py的文件执行django-admin.py startproject myprj。这样会在该文件夹下生成四个文件:__init__.py,manage.py, settings.py, urls.py
    2.使用python生成一个sqlite3数据库
      import sqlite3
      sqlite3.connect('database/webblog.db')//注意:这里,如果database文件要存在(在python安装目录下).webblog如果不存在会自动生成。
    3.配置数据库。修改settings.py,
      DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
      DATABASE_NAME = r"C:\Python25\database\webblog.db"             # Or path to database file if using sqlite3.
      DATABASE_USER = ''             # Not used with sqlite3.
      DATABASE_PASSWORD = ''         # Not used with sqlite3.
      DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
      DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
      我使用的是sqlite3做后台数据库,所以这里DATABASE_ENGINE应为sqlite3, DATABASE_NAME要制定数据库的的绝对路径(相对路径我没试过,不知是否可以)。还有,这里,要把database这个文件夹设为所有人可写(在我的上一篇博文中有介绍如何修改该权限)。
    4.进cmd,cd进包含manage.py的文件夹,例如:C:/..(省略)..> cd c:\python25\scripts\webblog(回车),然后输入python manage.py shell。此时会发现控制台编程>>>。输入from django.db import connection. 继续输入cur = connection.cursor()。如果此时无错误提示,说明你的数据库已经配置成功。
    5. 退出shell.>>>ctrl+z(^z)
    6. 创建一个新的应用。控制台输入:python manage.py startapp webblogapp。此时,会在当前文件夹内生成webblogapp文件夹。内共有4个文件__init__.py,models.py,tests.py, views.py
    7. 使用models.py定义模型。修改models.py,加入如下代码:
      from django.db import models
      from django.contrib import admin

      # Create your models here.

      _list_per_page = 50
      
      #其实这里定义的类就相当于是定义了两个表。最后可以看到它会生成两张表:webblogapp_User,webblogapp_person
      #关于model的如何定义,推荐看下http://docs.djangoproject.com/en/dev/topics/db/models/
      class User(models.Model):
          username = models.CharField(max_length=20)
          password = models.CharField(max_length=20)
          nickname = models.CharField(max_length=30)

      class person(models.Model):
          GENDER_CHOICES = (
              (u'M', u'Male'),
              (u'F', u'Female'),
              )
          name = models.CharField(max_length=60)
          gender = models.CharField(max_length=2, choices=GENDER_CHOICES)
    8. 定义完模型后(数据库中的表),就需要安装模型。在settings.py中,修改如下:
      INSTALLED_APPS = (
          #'django.contrib.auth',
          #'django.contrib.contenttypes',
          #'django.contrib.sessions',
          #'django.contrib.sites',
          'webblog.webblogapp',   #webblog是包含webblogapp的文件夹名,webblogapp是包含models.py的文件
        )
    9. 运行python manage.py sqlall webblogapp。生成表格。可以看出生成了两个表格webblogapp_user,webblogapp_person


    10.将sql提交至数据库. 运行python manage.py syncdb。可以看出,这是生成了多张表格(我也不知道其他表格干嘛用的。。。)


    11. 接下来,会要求你输入用户名,邮箱,密码之类的。照着输就OK了。
    12. 进入shell。python manage.py shell.
    >>>
    p = Person(name="Fred Flinstone", gender="M")
    >>>
    p.save()  //相当于在webblogapp_person中插入一行记录
    >>>
    p.gender
    u'M'

    >>>
    p.get_gender_display()
    u'Male'

              ----David Cai08-08-19午于金山公司
  • 相关阅读:
    android系统webview使用input实现选择文件并预览
    在列表中动态设置元素的id
    Vue使用Clipboard.JS在h5页面中复制内容
    Vue使用v-for显示列表时,数组里的item数据更新,视图中列表不同步更新的解决方法
    Vue子组件和根组件的关系
    Vue生命周期和钩子函数及使用keeplive缓存页面不重新加载
    Python与数据结构[3] -> 树/Tree[0] -> 二叉树及遍历二叉树的 Python 实现
    Python与数据结构[2] -> 队列/Queue[0] -> 数组队列的 Python 实现
    Python与数据结构[1] -> 栈/Stack[1] -> 中缀表达式与后缀表达式的转换和计算
    Python与数据结构[1] -> 栈/Stack[0] -> 链表栈与数组栈的 Python 实现
  • 原文地址:https://www.cnblogs.com/xingluzhe/p/1549780.html
Copyright © 2011-2022 走看看