当前位置:   article > 正文

Django开发——初步了解 | 搭建流程|py2neo出错解决

py2neo出错

初步了解

搭建流程

运行命令

Django会以127.0.0.1:8000这个默认配置启动开发服务器

neo4j.bat console   开启noe4j

python manage.py runserver
  • cmd中创建 Django 项目
django-admin startproject mysite

  • 创建一个应用(app)

        Django中,一个应用就是一个包

  1. python manage.py startapp 包名
  2. # python manage.py startapp polls
  • 各个文件作用

        polls/views.py

        创建一个视图,也就是具体的业务代码

  1. from django.http import HttpResponse
  2. def index(request):
  3. return HttpResponse("这里是liujiangblog.com的投票站点")

        为了调用该视图,我们还需要编写urlconf,也就是路由配置。

        在polls目录中新建一个文件,名字为urls.py

        

        urls.py

  1. from django.urls import path
  2. from . import views
  3. urlpatterns = [
  4. path('', views.index, name='index'),
  5. ]

        需要在主urls.py文件也进行一个注册,添加urlpattern条目,指向我们刚才建立的polls这个app独有的urls.py文件,这里需要导入include模块。

  1. from django.contrib import admin
  2. from django.urls import include, path
  3. urlpatterns = [
  4. path('polls/', include('polls.urls')),
  5. path('admin/', admin.site.urls),
  6. ]

        定义模型

        定义模型model,模型本质上就是数据库表的布局,再附加一些元数据。

  1. # polls.py/model.py
  2. from django.db import models
  3. class Question(models.Model):
  4. question_text = models.CharField(max_length=200)
  5. pub_date = models.DateTimeField('date published')
  6. class Choice(models.Model):
  7. question = models.ForeignKey(Question, on_delete=models.CASCADE)
  8. choice_text = models.CharField(max_length=200)
  9. votes = models.IntegerField(default=0)

        启用模型

        需要在外层大目录 即 mysite/setting.py文件中 INSTALLED_APPS 设置中增加指向该应用的配置文件的链接。

        配置类文件PollsConfig位于polls/apps.py脚本,配置的点式路径应为polls.apps.PollsConfig,因此需要在 INSTALLED_APPS 中将点式路径写入

  1. INSTALLED_APPS = [
  2. 'polls.apps.PollsConfig',
  3. # 以下六个是默认就存在的
  4. 'django.contrib.admin',
  5. 'django.contrib.auth',
  6. 'django.contrib.contenttypes',
  7. 'django.contrib.sessions',
  8. 'django.contrib.messages',
  9. 'django.contrib.staticfiles',
  10. ]
'
运行

终端运行代码

        运行makemigrations命令,把模型的改动保存为一个迁移

python manage.py makemigrations polls

        将对模型的修改体现在数据库表中

        【在mysite的大路径下】

python manage.py migrate

修改模型时的操作分三步

  • 在models.py中修改模型;
  • 运行python manage.py makemigrations为改动创建迁移记录文件;
  • 运行python manage.py migrate,将操作同步到数据库。

进入Python交互环境进行一些操作

python manage.py shell

调用manage.py参数能将DJANGO_SETTINGS_MODULE环境变量导入,它将自动按照mysite/settings.py中的设置,配置好你的python shell环境,这样,你就可以导入和调用任何你项目内的模块了。

  1. >>> from polls.models import Question, Choice # 导入我们写的模型类
  2. # 现在系统内还没有questions对象
  3. >>> Question.objects.all()
  4. <QuerySet []>
  5. # 创建一个新的question对象
  6. # Django推荐使用timezone.now()代替python内置的datetime.datetime.now()
  7. # 这个timezone就来自于Django的依赖库pytz
  8. from django.utils import timezone
  9. >>> q = Question(question_text="What's new?", pub_date=timezone.now())
  10. # 你必须显式的调用save()方法,才能将对象保存到数据库内
  11. >>> q.save()
  12. # 默认情况,你会自动获得一个自增的名为id的主键
  13. >>> q.id
  14. 1
  15. # 通过python的属性调用方式,访问模型字段的值
  16. >>> q.question_text
  17. "What's new?"
  18. >>> q.pub_date
  19. datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=<UTC>)
  20. # 通过修改属性来修改字段的值,然后显式的调用save方法进行保存。
  21. >>> q.question_text = "What's up?"
  22. >>> q.save()
  23. # objects.all() 用于查询数据库内的所有questions
  24. >>> Question.objects.all()
  25. <QuerySet [<Question: Question object>]>

admin后台管理站点

创建可登录站点的用户,输入用户名和密码

python manage.py createsuperuser

注册投票应用 

现在还无法看到投票应用,必须先在admin中进行注册,告诉admin站点,请将polls的模型加入站点内,接受站点的管理。(在polls/admin.py)

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

视图和模板

编写视图

  1. # polls/views.py文件
  2. # 注意函数的参数
  3. def detail(request, question_id):
  4. return HttpResponse("You're looking at question %s." % question_id)
  5. def results(request, question_id):
  6. response = "You're looking at the results of question %s."
  7. return HttpResponse(response % question_id)
  8. def vote(request, question_id):
  9. return HttpResponse("You're voting on question %s." % question_id)
'
运行

去注册路径

  1. # polls/urls.py
  2. from django.urls import path
  3. from . import views
  4. urlpatterns = [
  5. # 例如: /polls/
  6. path('', views.index, name='index'),
  7. # 例如: /polls/5/
  8. path('<int:question_id>/', views.detail, name='detail'),
  9. # 例如: /polls/5/results/
  10. path('<int:question_id>/results/', views.results, name='results'),
  11. # 例如: /polls/5/vote/
  12. path('<int:question_id>/vote/', views.vote, name='vote'),
  13. ]

Py2neo测试出错

RuntimeError

AssertionError

或者提示(name='neo4j')有问题的,基本都是版本不匹配

先卸载当前版本

pip uninstall py2neo

再下载2021.2.3版本的

(配置过国内源会更快一些,没配置的在后面加   -i   Simple Index)

pip install py2neo==2021.2.3

neo4j报错

ValueError:The following settings are not supported :{‘username‘: ‘neo4j“}

等问题都有可能是不匹配

neo4j无法连接?报错?可能是因为语法和版本不匹配!!!!!!

不同版本使用不同的语句进行和neo4j的连接

旧版本:

graph = Graph('http://localhost:7474', username='neo4j', password='neo4j的密码')

新版本:

graph = Graph('http://localhost:7474', user='neo4j', password='neo4j的密码', name='neo4j')

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/790293
推荐阅读
相关标签
  

闽ICP备14008679号