学习网址:https://www.w3cschool.cn/django/django-first-app.html
1.使用 django-admin.py 来创建名为myweb的项目:
Terminal运行 X:/当前目录 > django-admin startproject xxx
创建完成后将在当前目录下创建myweb项目文件,进入该项目文件内,设置setting.py 例:DATABASES(记得提前创建好数据库名) 在setting.py同目录下的__init__.py文件中加入:
import pymysql
pymysql.install_as_MySQLdb()
报错?:
‘django-admin’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
解决方法:
卸载django:pip uninstall django 以管理员身份运行cmd, 重新安装django:pip install django==9.99.99 #自选版本号
2.创建一个app模块会自动生成app文件夹,该文件夹包括几个文件:
Terminal运行 X:/xx/xxxx/myweb > python manage.py startapp myapp
即创建应用 在创建应用程序前,我们需要先进入项目目录下,此处还是以上述的 myweb 项目为例说明,命令如下: cd myweb 当进入了 myweb 目录下后,下面就来创建“myapp”应用程序,此时,就需要使用 manage.py 来交互,命 令如下: python manage.py startapp myapp
在目录中找到myweb项目包里面的setting.py,在INSTALLED_APPS当中注册APP模块:
INSTALLED_APPS = [ ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ’myapp’ ] 在包下输入命令,启动项目: Terminal运行 X:/xxx/myweb> python manage.py runserver ip port #不写ip、port 默认127.0.0.1:8000 浏览器访问服务器: http://127.0.0.1:8000/
3.定义模型 (myapp文件下的models.py)
创建模型类,即定义表:
from django.db import models
class Computer(models.Model):
'''定义电脑类'''
cbrand = models.CharField(max_length=10)
cprice = models.FloatField()
cpub_time = models.DateField()
cfactory_id = models.ForeignKey('FactoryInfo')
def __str__(self):
return self.cbrand
class FactoryInfo(models.Model):
'''定义厂家类'''
fname = models.CharField(max_length=10)
flisted = models.BooleanField()
fcontent = models.CharField(max_length=100)
def __str__(self):
return self.fname + ":" + self.fcontent
4.生成数据表
在这里要注意的是,上述创建的应用“myapp”是否已成功加入到 settings.py 文件中的 INSTALLED_APPS 列表, 若已加入,则表名此应用已激活或该模型已激活。接下来,只需按照下列步骤完成即可成功生成数据表,如下:
第 1 步 生成迁移文件:
假定已在 myweb 目录下,则执行下列命令可用于生成迁移文件,并可根据模型类来自动生成 SQL 语句,命令如下: Terminal运行 X:/xxx/myweb> python manage.py makemigrations
报错?:
conn.encoders[SafeBytes] = conn.encoders[bytes] KeyError: <class ‘bytes’>
解决方法:
在setting.py同目录下的__init__.py文件中加入:
import pymysql
pymysql.install_as_MySQLdb()
第 2 步 生成数据表:
执行如下的迁移命令,并用于执行 SQL 语句来生成数据表,命令如下: Terminal运行 X:/xxx/myweb>python manage.py migrate
5.对数据的增删查改
I.进入 Python Shell 脚本,可使用如下命令:
Terminal运行 X:/xxx/myweb>python manage.py shell 若要对电脑表 Computer 的数据进行增删查改操作,则需要简要了解以下几个操作函数,如下: 首先,若要完成下列的数据操作过程,则需导入如下包(操作表前,导入该表): from myapp.models import FactoryInfo from datetime import date
II.修改表
插入数据
例如:对myapp文件里models.py文件中创建好的FactoryInfo表进行修改(见步骤3.) 记得 对象.save() 可能报错: 创建数据库的编码格式出错,不支持中文数据 创建数据库时记得指定编码格式 create database DBNAME character set [utf8,gbk…]
查询数据
条件查询一条 查询表内所有 (查询前需先导入import该表)
修改数据
对象=查询条件 对象.属性=新值
删除数据
对象.delete()
6.创建用户
Django创建管理员账号 Terminal运行 X:/xxx/myweb> python manage.py createsuperuser # 创建一个超级管理员账号 输入账号:admin 输入邮箱:123456789@qq.com 输入密码:test123456 #需二次确认 Terminal运行 X:/xxx/myweb> python manage.py runserver #运行服务器 访问登录界面:http://127.0.0.1:8000/admin/
可在setting.py设置网页显示语言,时间区间
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
7.注册模型(admin.py网页显示创建的数据表)
from .models import Computer, FactoryInfo
class ComputerAdmin(admin.ModelAdmin):
list_display = ['id', 'cbrand', 'cprice', 'cpub_time', 'cfactory_id']
class FactoryAdmin(admin.ModelAdmin):
list_display = ['fname', 'flisted', 'fcontent']
admin.site.register(Computer, ComputerAdmin)
admin.site.register(FactoryInfo, FactoryAdmin)
8.搜索
search_f=[’’]
9.视图简介(自定义显示内容)
I.myapp文件下设置views.py (③.对应视图)
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("myapp/index")
def welcome(request):
return HttpResponse("myapp/welcome")
II.myapp文件下创建urls.py (②.分路由发送对应视图)
from django.conf.urls import url
from .views import *
urlpatterns = [
url(r'^index/', index),
url(r'^welcome/', welcome)
]
III.主文件下设置urls.py (客户端访问顺序:①.主路由进入myapp里的分路由)
from django.conf.urls import url
from django.contrib import admin
from .views import hello
from django.conf.urls import include
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/', hello),
url(r'^myapp/', include('myapp.urls'))
]
|