《Python编程从入门到实践》学习笔记
之前学习的时候是在windows下的,因为部署需要,重新在linux下弄。是在虚拟机上安装的Centos
资源:https://www.python.org/ftp/python/
注:我的centos本来登陆的图形用户界面是不是root账户,这里为了方便,我修改一下
centos图形用户界面登录root账户
vi /etc/gdm/custom.conf
在[daemon]下面添加
AutomaticLoginEnable=True
AutomaticLogin=root
CentOS下的Django项目—— 一、建立项目+二、创建应用程序
1.csdn收藏了一个centos安装python3.6.4的过程
2.建立虚拟环境:python -m venv ll_env
3.激活虚拟环境:source ll_env/bin/activate
停止虚拟环境用:deactivate
4.安装Django:pip install Django==1.11
5.在django中创建项目:django-admin.py startproject learning_log .
6.创建数据库:python manage.py migrate
7.查看项目:python manage.py runserver
8.创建应用程序:python manage.py startapp learning_logs
9.定义模型:
learning_log/learning_logs/models.py
添加
class Topic(models.Model):
"""用户学习的主题"""
text=models.Charfield(max_length=200)
date_added=models.DateTimeField(auto_now_add=True)
def __tupple__(self):
"""返回模型的字符串表示"""
return self.text
10.激活模型
learning_log/learning_log/settings.py
找到
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
修改为
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# My apps
'learning_logs',
]
11.确定如何修改数据库:python manage.py makemigrations learning_logs
12.应用迁移修改数据库:python manage.py migrate
13.创建超级用户:python manage.py createsuperuser
ll_admin
14.向管理网站注册模型:
learning_log/learning_logs/admin.py
添加
from learning_logs.models import Topic
admin.site.register(Topic)
15.添加主题:http://localhost:8000/admin/输入创建的超级用户账号密码,
为topics添加主题Chess和Rock Climbing
16.定义模型Entry
learning_log/learning_logs/models.py
添加
class Entry(models.Model): #继承Django基类Model
"""学到的有关某个主题的具体知识"""
topic = models.ForeignKey(Topic,on_delete=models.CASCADE) #第一个属性topic是一个外键实例,准备让每个主题创建时分配给它一个键
text = models.TextField() #属性text是一个TextField实例,不限长度
date_added = models.DateTimeField(auto_now_add=True) #属性date_added实现按创建顺序呈现条目并在每个条目旁边放置时间戳
class Meta: #嵌套Meta类,存储用于管理模型的额外信息
verbose_name_plural = 'entries' #让Django在需要时使用Entries来表示多个条目
def __str__(self):
"""返回模型的字符串表示"""
return self.text[:50]+"..." #由于条目包含的文本可能很长,只显示前50个字符并用省略号表示显示的并非整个条目
17.确定该如何修改数据库:python manage.py makemigrations learning_logs
18.应用这种迁移修改数据库:python manage.py migrate
19.注册模型Entry
learning_log/learning_logs/admin.py
修改from learning_logs.models import Topic为
from learning_logs.models import Topic,Entry
添加
admin.site.register(Entry)
20.添加条目:为Chess添加两个条目,为Rock Climbing添加一个条目。
21.交互式shell会话
python manage.py shell
from learning_logs.models import Topic
Topic.objects.all()
topics=Topic.objects.all()
for topic in topics:
print(topic.id,topic)
t=Topic.objects.get(id=1)
t.text
t.date_added
t.entry_set.all()