这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战
创建工程
创建myproject工程项目:
django-admin.py startproject myproject
manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。
settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
urls.py ----- 负责把URL模式映射到应用程序。
创建项目
python manage.py startapp test
数据库操作
初始化数据库:
python 自带SQLite数据库,Django支持各种主流的数据库,这里我们首先使用MySQL,如果使用其它数据库请在settings.py文件中设置。数据库默认的配置为:
DATABASES={
'default': {
'ENGINE': 'django_prometheus.db.backends.mysql',
'NAME': 'testdb',
'USER': 'test',
'PASSWORD': 'test',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
'init_command': 'SET foreign_key_checks = 0;',
'charset': 'utf8',
'read_timeout': 1000,
},
# 'CONN_MAX_AGE': 1800,
}
}
在mysql数据中创建一个testdb的数据库,然后在myproject/init.py文件中加入以下代码:
import pymysql
pymysql.install_as_MySQLdb()
使用默认的数据配置来初始化数据库:
python manage.py makemigrations
python manage.py migrate
Django自带有一个ADMIN 后台,下面创建ADMIN后台的用户名与密码:
python manage.py createsuperuser
下面访问django的 ADMIN 后台:http://127.0.0.1/admin
创建一张User表,并创建字段:
现在我们打开test目录下的models.py文件,这是我们定义test数据结构的地方。打开myproject/test/models.py 文件进行修改:
from django.db import models
class User(models.Model):
username = models.CharField(max_length=45, blank=True, null=True, help_text="姓名")
password = models.CharField(max_length=45, blank=True, null=True, help_text="密码")
age = models.IntegerField(blank=True, null=True, help_text="性别")
执行命令:
python manage.py makemigrations
python manage.py migrate
通过字典的格式来创建表数据
def db_handle(request):
# models.User.objects.create(username='test1',password='123456',age=33)
dic = {"username":"test2","password":"123456","age":23}
models.User.objects.create(**dic)
return HttpResponse('OK')
下面我们配置路由,以便让浏览器能够访问到views.py文件:
from django.conf.urls import url
from django.contrib import admin
from test import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^db_handle', views.db_handle),
]
删除表数据:
from django.shortcuts import render
from test import models
from django.shortcuts import HttpResponse
def db_handle(request):
# models.User.objects.create(username='test1',password='123456',age=33)
# dic = {"username":"test2","password":"123456","age":23}
# models.User.objects.create(**dic)
models.User.objects.filter(id=2).delete()
return HttpResponse('OK')
修改表数据:
from django.shortcuts import render
from test import models
from django.shortcuts import HttpResponse
def db_handle(request):
# models.User.objects.create(username='test1',password='123456',age=33)
# dic = {"username":"test2","password":"123456","age":23}
# models.User.objects.create(**dic)
# models.User.objects.filter(id=2).delete()
models.User.objects.filter(id=1).update(age=18)
return HttpResponse('OK')
查询表数据:
from django.shortcuts import render
from test import models
from django.shortcuts import HttpResponse
def db_handle(request):
# models.User.objects.create(username='test1',password='123456',age=33)
# dic = {"username":"test2","password":"123456","age":23}
# models.User.objects.create(**dic)
# models.User.objects.filter(id=2).delete()
# models.User.objects.filter(id=1).update(age=18)
res = models.User.objects.all()
return HttpResponse(res)