子臣的个人博客

0%

dajngo_heroku

一、Django

1. 下载django

1
pip install Django==3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/

2. 新建django项目

在pycharm中用虚拟环境建立

1
django-admin.py startproject learning_log .

​ 创建数据库:

1
python manage.py migrate

​ 查看项目: http://localhost:8000/admin/

1
python manage.py runserver

创建应用(pycharm中在刚开始已创建一个)

1
python manage.py startapp learning_logs

在setting.py中找到INSTALLED_APPS添加应用

3. 定义模型models.py

更新数据库:

1
2
python manage.py makemigrations learning_logs 
python manage.py migrate

每当需要修改“学习笔记”管理的数据时,都采取如下三个步骤:修改models.py;对 learning_logs调用makemigrations;让Django迁移项目。

每当需要修改“学习笔记”管理的数据时,都采取如下三个步骤:修改models.py;对 learning_logs调用makemigrations;让Django迁移项目。

创建超级用户:

1
python manage.py createsuperuser

向管理网站注册模型:
我们创建应用程序learning_logs时,Django在models.py所在的目录中创建了一个名为 admin.py的文件

1
2
3
from django.contrib import admin 
from learning_logs.models import Topic
admin.site.register(Topic)

4. Django shell

1
2
3
python manage.py shell
from learning_logs.models import Topic
Topic.objects.all()


5.版本造成的错误:

url:
先导入re_path,使用re_path代替url可用正则搜索

Django2.0中编写models类下的ForeignKey
book = models.ForeignKey(‘BookInfo’)django2.0与之前的1.8不同,
错误:

1
book = models.ForeignKey('BookInfo')

TypeError: init() missing 1 required positional argument: ‘on_delete’

TypeError: init() missing 1 required positional argument: ‘on_delete’

解决方法:

1
book = models.ForeignKey('BookInfo', on_delete=models.CASCADE,)

加上on_delete参数就可以了!!!
​—

二、推送到heroku

1. git提交项目:

1
2
3
4
git init 
git add .
git commit -am "Ready for deployment to heroku."
git status

2. 推送heroku:

1
2
3
4
5
6
heroku login #(需要翻墙)
heroku create
git push heroku master
heroku ps
heroku open
heroku apps:rename learning-log #(重命名)

3. 在服务端更新数据:

1
heroku run python manage.py migrate

可以在在线应用程序的URL末尾添加/admin/来登录管理网站

4. 修改后提交:

1
2
3
4
git add .
git commit -am "Set DEBUG=False for Heroku."
git status
git push heroku master