提纲:
涉及到的命令
python -m venv envname # 创建虚拟环境,envName 任意名称
python -m pip install # 若提示pip错误,执行安装命令
pip install django # 安装Django
django-admin startproject djpj . # 创建project,注意:project名称后加个【.】
python manage.py startapp master # 创建 app
python manage.py dbshell # 访问数据库
python manage.py makemigrations [app名] # 生成移行文件,可全部执行,也可指定app执行
python manage.py migrate [app名] # 执行移行处理,生成表,也可指定app执行
python manage.py createsuperuser # 创建超级用户
python manage.py runserver [端口号] # 启动服务器,终止服务器 ctrl+c
#其他命令
终止虚拟环境:任意路径下执行【deactivate】
启动虚拟环境:进入到虚拟环境路径下【cd venv\Scripts】【activate】
File> new project,指定路径,project 名称【djangoTutorial】,选中创建虚拟环境,create 即可
若本地安装了多个版本的python,interpreter选中指定的版本即可。※不同的虚拟环境指定不同版本,实现本地多版本兼容
打开project,terminal 已经默认进入到虚拟环境下。
终止虚拟环境:任意路径下执行【deactivate】
启动虚拟环境:进入到虚拟环境路径下【cd venv\Scripts】【activate】
(venv) D:\PycharmProjects\djangoTutorial>pip install django
注意:project名称后加个【.】,这样创建完的阶层:manage.py在项目根目录下。
若不加,manage.py在djpj下,会有个同名文件夹djpj存放项目文件。
(venv) D:\PycharmProjects\djangoTutorial>django-admin startproject djpj .
※manage.py的位置上决定了执行命令时,是否需要进入到对应目录下。
虚拟环境配置好后,终端默认进入到虚拟环境下,project层【(venv) D:\PycharmProjects\djangoTutorial>】
若manage.py在下一层目录中,每次执行命令前,需要先进入到下层目录到manage.py所在目录下。
Because Django acts as a scaffold to help you bootstrap your web development, it comes prepackaged with several internal data models and will automatically create a SQLite database for you when you apply an initial migration.
若想指定其他数据库,参考databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
python manage.py migrate
(venv) D:\PycharmProjects\djangoTutorial>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
(venv) D:\PycharmProjects\djangoTutorial>
Django自带的标准表,移行文件在虚拟环境文件夹下
追加数据库,指定【db.sqlite3】OK
接续时,无需指定用户名密码,直接【接续】即可
migrate生成的标准表
补充:
※直接执行会报错【You appear not to have the 'sqlite3' program installed or on your path】
①需要下载【sqlite3】工具包 SQLite Download Page
②解压后,拷贝到 manage.py同层目录下
通过【python manage.py dbshell】启动sqlite
【.help】查看所有命令,【.tables】查看table list
(venv) D:\PycharmProjects\djangoTutorial>python manage.py dbshell
SQLite version 3.39.2 2022-07-21 15:24:47
Enter ".help" for usage hints.
sqlite> .tables
auth_group auth_user_user_permissions
auth_group_permissions django_admin_log
auth_permission django_content_type
auth_user django_migrations
auth_user_groups django_session
sqlite>
(venv) D:\PycharmProjects\djangoTutorial>python manage.py startapp master
添加到【insatalled_apps】
移行命令
(venv) D:\PycharmProjects\djangoTutorial>python manage.py makemigrations # 生成移行文件
(venv) D:\PycharmProjects\djangoTutorial>python manage.py migrate # 执行移行处理,生成表
路径:master>migrations>0001_xxxxx.py
# Generated by Django 4.1 on 2022-08-07 13:57
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Product',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('deleted', models.BooleanField(default=False, verbose_name='削除フラグ')),
('deleted_by', models.CharField(default='', max_length=30, verbose_name='削除者')),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='登録日時')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新日時')),
('created_by', models.CharField(default='', max_length=30, verbose_name='登録者')),
('updated_by', models.CharField(default='', max_length=30, verbose_name='更新者')),
('product_id', models.IntegerField(default=0, verbose_name='商品ID')),
('product_name', models.CharField(default='', max_length=30, verbose_name='商品名')),
],
options={
'verbose_name': 'テスト',
'db_table': 'master_product_model',
'default_permissions': (),
},
),
]
model作成参考Django model,baseModel基类, migrate移行
说明:
model不指定主键的情况,会自动加上id作为表的主键,参考移行文件
主键类型在setting.py 设定
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' # 若用postgre,数据类型为bigserial
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' # 若用postgre,数据类型为serial
(venv) D:\PycharmProjects\djangoTutorial>python manage.py runserver # 默认端口8000
(venv) D:\PycharmProjects\djangoTutorial>python manage.py runserver 9000 # 指定端口号
点蓝色link 即可打开初始页
①创建超级用户
(venv) D:\PycharmProjects\djangoTutorial>python manage.py createsuperuser
Username (leave blank to use 'water'): admin
Email address: admin@gmail.com
Password:
Password (again):
Superuser created successfully.
②启动服务后访问 【http://127.0.0.1:8000/admin/】,输入用户名密码
创建过程和pycham基本一致,敲命令执行即可。
虚拟环境需要手动创建,并设定interpreter。
到项目路径下,执行创建虚拟环境命令
D:\PycharmProjects\djangoTutorial>python -m venv envname # envName 任意名称
ctrl + shift + p, 输入【interpreter】,选择下图表示项目
指定刚刚创建的虚拟环境下的 python.exe
例:D:\PycharmProjects\djangoTutorial\venv\Scripts\python.exe
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。