Diango学习笔记
采用anaconda+Pycharm实现
安装Diango:
pip install django
or
conda install diango
一、建立项目
(一)打开powershell
win+r
(二)进入到我们想要存放文件的目录
cd PycharmProjects
可以看到如下输出:
C:\Users\tb>cd PycharmProjects
C:\Users\tb\PycharmProjects>
(三)在Django中创建项目
django-admin startproject learning_log .
dir
dir learning_log
(注意不要忘记上面的句点)
这行代码将会在当前目录下创建一个 learning_logs
目录。如果命令失败了,查看 运行 django-admin 时遇到的问题,可能能给你提供帮助。
(四)创建数据库
python manage.py migrate
ls
(五)查看项目
python manage.py runserver
你应该会看到如下输出:
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
七月 24, 2023 - 15:50:53
Django version 4.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
点击下面链接可查看 http://127.0.0.1:8000/
注意:在后续的步骤中该CMD窗口最好不要关闭,后续的操作中要打开新的CMD窗口输入命令
二、创建应用程序
再打开一个终端窗口,切换到manage.py所在的目录
cd PyCharmProjects
python manage.py startapp learning_logs
dir
会看到如下输出:
PS C:\Users\tb\PycharmProjects> dir
目录: C:\Users\tb\PycharmProjects
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023/7/25 15:37 learning_log
d----- 2023/7/25 15:39 learning_logs
d----- 2023/7/24 15:55 pythonProject
d----- 2023/7/25 12:09 pythonProject1
-a---- 2023/7/25 15:37 131072 db.sqlite3
-a---- 2023/7/25 15:35 690 manage.py
再输入
dir learning_logs/
会看到如下输出:
PS C:\Users\tb\PycharmProjects> dir learning_logs/
目录: C:\Users\tb\PycharmProjects\learning_logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023/7/25 15:39 migrations
-a---- 2023/7/25 15:39 66 admin.py
-a---- 2023/7/25 15:39 163 apps.py
-a---- 2023/7/25 15:39 60 models.py
-a---- 2023/7/25 15:39 63 tests.py
-a---- 2023/7/25 15:39 66 views.py
-a---- 2023/7/25 15:39 0 __init__.py
(一)定义模型
打开文件models.py,创建自己的模型
创建了Topic、Entry两个类,它们都继承Model
from django.db import models
# Create your models here.
class Topic(models.Model):
'''用户学习的主题'''
text = models.CharField(max_length=200) #由字符组成的数据
date_added = models.DateTimeField(auto_now_add=True) #记录时间和日期的数据
def __str__(self):
return self.text
class Entry(models.Model):
'''学到的有关某个主题的具体知识'''
topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name_plural = 'entries'
def __str__(self):
return f"{self.text[:50]}..."
(二)激活模型
打开setting.py,将
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
]
修改为:
INSTALLED_APPS = [
#我的应用程序
"learning_logs",
#默认应用程序
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
]
(三)让Django修改数据库,使其能够存储与模型Topic、Entry相关的信息,在CMD窗口中执行如下命令:
python manage.py makemigrations learning_logs
python manage.py migrate
PS C:\Users\tb\PycharmProjects> python manage.py makemigrations learning_logs
Migrations for 'learning_logs':
learning_logs\migrations\0001_initial.py
- Create model Topic
PS C:\Users\tb\PycharmProjects> python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, learning_logs, sessions
Running migrations:
Applying learning_logs.0001_initial... OK
注意:在后面每次增加新模型后,都需要迁移数据库:修改models.py,执行命令
python manage.py makemigrations learning_logs
python manage.py migrate
(三)Django管理网站
1、创建超级用户(具备所有权限的用户)
在cmd中输入命令:
python manage.py createsuperuser
可以看到如下输出:输入Username,Email,Password
PS C:\Users\tb\PycharmProjects> python manage.py createsuperuser
Username (leave blank to use 'tb'): tb
Email address: your email
Password:
Password (again):
Superuser created successfully.
PS C:\Users\tb\PycharmProjects> python manage.py makemigrations learning_logs
Migrations for 'learning_logs':
learning_logs\migrations\0002_entry.py
- Create model Entry
2、向网站注册模型
Django会自动向网站中添加模型,如User和Group,但是我们自己创建的模型,需要手动注册。打开admin.py
from django.contrib import admin
# Register your models here.
添加如下语句:
from django.contrib import admin
from .models import Topic,Entry
# Register your models here.
admin.site.register(Topic)
admin.site.register(Entry)
3、使用超级用户账户访问网站
访问如下链接
http://localhost:8000/admin/ (推荐)或者https://localhost:8000/admin/ (不推荐,有可能会打不开)
输入username和password登录
4、添加主题