mysql条件下 创建新的数据库
create database project1 charset=utf8
创建虚拟环境
mkvirtualenv -p python3 虚拟环境的名字(project1):
通过workon 进入设置好的环境
在/Desktop 目录下创建自己的项目
创建项目的语句:django-admin startproject 项目名字
django-admin startproject newproject
会生成如下的文件:
manage.py 项目管理文件,用来管理项目
newproject:项目同名文件夹
├── init.py表示我们这个文件可以被使用过
├── settings.py 配置文件(数据库,邮箱等的配置)
├── urls.py项目的所有的地址配置
└── wsgi.py 就是我们django 小型服务器的入口文件
然后创建app
python manage.py startapp 模块名字
此处创建了三个模块
python manage.py startapp use_er
python manage.py startapp cardetail1
python manage.py startapp trade1
将生成的三个模块用一个apps文件夹收藏,方便以后查找
更改数据库:让项目文件找到所用的数据库
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’:‘project1’, 数据库名称
‘USER’:‘root’, 使用者
‘PASSWORD’:‘mysql’, 数据库密码
‘PORT’:3306, 端口
‘HOST’:‘localhost’
}
}
安装pymysql 模块,并且在项目的同名文件夹下的————init.py文件下添加语句
import pymysql
pymysql.install_as_MySQLdb()
在model中进行建表语句,一个用户信息表 一个用户地址表
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class UserInfo(AbstractUser):
is_delete=models.IntegerField(default=0)
def __str__(self):
return self.username
class UserAddress(models.Model):
user = models.ForeignKey('UserInfo')
recv_name = models.CharField(max_length=20)
recv_phone = models.IntegerField(max_length=20)
server_phone = models.IntegerField(max_length=20)
recv_Address = models.CharField(max_length=30)
is_delete = models.IntegerField(default=0)
def __str__(self):
return self.recv_name
建立上表中用了AbstractUser ,Django框架中自带的用户信息表,继承了他的属性,需要在setting中导入
#django自带的用户认证系统
AUTH_USER_MODEL = ‘use_er.UserInfo’
为了方便使用模块,我们将模块搜索出来,可以直接使用模块名,不用从项目的同名文件可是写地址
import sys
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
这样查找过系统模块后,可以直接在后面加上新的模块名称,如果没有搜过,则需要加前缀apps. 例如:apps.use_er ,apps.cardetail1,
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'use_er',
'cardetail1',
'trade1',
)
在admin中写上后端可以显示的内容
from django.contrib import admin
from use_er.models import UserInfo,UserAddress
# Register your models here.
class UserInfoAdmin(admin.ModelAdmin):
list_display = ['id','username','password','last_login','is_superuser','email','is_staff','is_active','date_joined','is_delete']
class UserAddressAdmin(admin.ModelAdmin):
list_display = ['id', 'recv_name','recv_phone','server_phone','recv_Address','is_delete','user_id']
admin.site.register(UserAddress,UserAddressAdmin)
admin.site.register(UserInfo,UserInfoAdmin)
然后生成迁移文件 ,执行迁移文件 ,第一个模块就可以告一段落了
python manage.py makemigrations
python manage.py migrate
然后开启服务器
python manage.py runserver
进入http://127.0.0.1:8000/admin 中可以查看