Pycharm 创建Django project
提纲:
- 创建Django project
- model 作成,migrate移行,自动生成id
- sqlite链接以及error解决方法【You appear not to have the 'sqlite3' program installed or on your path】
涉及到的命令
代码语言:python代码运行次数:0复制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 venvScripts】【activate】
1,安装 python, pycharm,vscode
python
pycharm
vscode
2,pycharm 创建project
File> new project,指定路径,project 名称【djangoTutorial】,选中创建虚拟环境,create 即可
若本地安装了多个版本的python,interpreter选中指定的版本即可。※不同的虚拟环境指定不同版本,实现本地多版本兼容
打开project,terminal 已经默认进入到虚拟环境下。
终止虚拟环境:任意路径下执行【deactivate】
启动虚拟环境:进入到虚拟环境路径下【cd venvScripts】【activate】
3,虚拟环境下,安装Django,不指定版本的话,默认安装最新版本
代码语言:javascript复制(venv) D:PycharmProjectsdjangoTutorial>pip install django
4,startproject
注意:project名称后加个【.】,这样创建完的阶层:manage.py在项目根目录下。
若不加,manage.py在djpj下,会有个同名文件夹djpj存放项目文件。
代码语言:javascript复制(venv) D:PycharmProjectsdjangoTutorial>django-admin startproject djpj .
※manage.py的位置上决定了执行命令时,是否需要进入到对应目录下。
虚拟环境配置好后,终端默认进入到虚拟环境下,project层【(venv) D:PycharmProjectsdjangoTutorial>】
若manage.py在下一层目录中,每次执行命令前,需要先进入到下层目录到manage.py所在目录下。
5,perform Django migrate
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.
①setting.py 会默认配置好SQLite
若想指定其他数据库,参考databases
代码语言:javascript复制DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
②执行移行命令
python manage.py migrate
(venv) D:PycharmProjectsdjangoTutorial>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:PycharmProjectsdjangoTutorial>
Django自带的标准表,移行文件在虚拟环境文件夹下
③ 链接sqlite3数据库:
③-1 A5:DB tool利用
追加数据库,指定【db.sqlite3】OK
接续时,无需指定用户名密码,直接【接续】即可
migrate生成的标准表
补充:
③-2 pycharm> database windows:_Professional_feature 只有专业版本才能用。
③-3 也可通过执行命令来看生成的表【python manage.py dbshell 】
※直接执行会报错【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
代码语言:javascript复制(venv) D:PycharmProjectsdjangoTutorial>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>
6,add app
代码语言:javascript复制(venv) D:PycharmProjectsdjangoTutorial>python manage.py startapp master
添加到【insatalled_apps】
7,追加model,执行移行命令
移行命令:
代码语言:python代码运行次数:0复制移行命令
(venv) D:PycharmProjectsdjangoTutorial>python manage.py makemigrations # 生成移行文件
(venv) D:PycharmProjectsdjangoTutorial>python manage.py migrate # 执行移行处理,生成表
model定义参考
查看生成的移行文件
路径:master>migrations>0001_xxxxx.py
代码语言:python代码运行次数:0复制# 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': (),
},
),
]
查看生成的表,master_product_model
model作成参考Django model,baseModel基类, migrate移行
说明:
model不指定主键的情况,会自动加上id作为表的主键,参考移行文件
主键类型在setting.py 设定
代码语言:python代码运行次数:0复制DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' # 若用postgre,数据类型为bigserial
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' # 若用postgre,数据类型为serial
8,启动服务
代码语言:python代码运行次数:0复制(venv) D:PycharmProjectsdjangoTutorial>python manage.py runserver # 默认端口8000
(venv) D:PycharmProjectsdjangoTutorial>python manage.py runserver 9000 # 指定端口号
点蓝色link 即可打开初始页
9,Django管理画面
①创建超级用户
代码语言:javascript复制(venv) D:PycharmProjectsdjangoTutorial>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/】,输入用户名密码
VScode创建项目
创建过程和pycham基本一致,敲命令执行即可。
虚拟环境需要手动创建,并设定interpreter。
1,mkdir djangoTutorial
2,虚拟环境创建命令
到项目路径下,执行创建虚拟环境命令
代码语言:python代码运行次数:0复制D:PycharmProjectsdjangoTutorial>python -m venv envname # envName 任意名称
3,interpreter设定
ctrl shift p, 输入【interpreter】,选择下图表示项目
指定刚刚创建的虚拟环境下的 python.exe
例:D:PycharmProjectsdjangoTutorialvenvScriptspython.exe