使用djiango 创建网站

 

   如果发现用户登录异常等情况请不要惊慌,换个浏览器就好了,谷歌有这个问题,也困扰我很久。

  如果搭建过程,发现新建topic异常等现象,把不要惊慌,可能是你没有进行数据重新清理,请彻底格式化数据库就好了。

 

1.这不是一个容易的事,如果你之前并没有做过。

2.我这是基于pycharm

admin 是用户主页,admin  不是必须的,admin中可以注册你的模型(数据库模型)

 

 

 这个地方添加你的app名字  

templates模板路径地址

 

接下来需要创建数据库  

 python manage.py migrate

 

创建超级用户

python manage.py createsuperuser

 

用户名和密码必须要输入,密码必须包含8个字符

 

每次添加新的数据库模板我们需要,我们要调整数据库,迁移数据库

python manage.py makemigrations learning_logs

 

python manage.py migrate

接下来使用shell来调试

对数据库做了改动如果数据不重要可以直接清空,就不用下面的步骤了
python manage.py flush
#首先进行数据关联用户,先启动shell
python manage.py shell from django.contrib.auth.models import User

User.objects.all()
#关联数据
for user in User.objects.all():
  (table)
  print(user.username,user.id)
#迁移数据库 以下命令要在shell里面输入(ctr+z)
python manage.py makemigrations learning_logs
#选择数据1
python manage.py migrate

python manage.py shell
#下面是一些验证数据
from learning_logs.models import Topic

topics = Topic.objects.all()
  #主题所有者打印
  print(topic,topic.owner)
for topic in topics: (table 空格下面的语句不然会出错)   print(topic.id,topic) t=Topic.objects.get(id=1) t.text t.date_added t.entry_set.all()
这几条似乎很重要,负责后面网站添加数据,数据库貌似会出一些问题

我大概遇到了这几个问题

上面的 fields 决定了展现用户form的哪几项,有的如果用户没有创建,django会帮你创建,有时候会导致一些我们不想要的东西,所以只列举你想要创建的对象,不能选择 --all--

forms是表单,我们可以通过指定  get和post来区别是获取一个空表单还是提交表单

很庆幸 它工作了

 

 

有 id可以填,没有就不要添参数会出错

 

通过

python manage.py startapp users

可以快速创建一个新的应用程序目录,包含必备的文件树

如果发现一些无法控制网页错乱,无法跳转等事项请确认是不是浏览器缓存的故障,更换浏览器或者清空cookie可能能够解决。

 

File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "D:\python_work\myweb\learning_logs\models.py", line 6, in <module>
class Topic(models.Model):
File "D:\python_work\myweb\learning_logs\models.py", line 10, in Topic
owner = models.ForeignKey(User)
TypeError: __init__() missing 1 required positional argument: 'on_delete'

 

owner = models.ForeignKey(User,on_delete=models.DO_NOTHING)#不然说参数错误 关联到一起

python manage.py shell
from django.contrib.auth.models import User
User.objects.all()

for user in User.object.all():
print(user.username,user.id)

 

posted @ 2018-05-21 18:33  避暑山庄  阅读(4431)  评论(0编辑  收藏  举报