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

初步了解

搭建流程

运行命令

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

neo4j.bat console   开启noe4j

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

  • 创建一个应用(app)

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

python manage.py startapp 包名

# python manage.py startapp polls
  • 各个文件作用

        polls/views.py

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

from django.http import HttpResponse

def index(request):
    return HttpResponse("这里是liujiangblog.com的投票站点")

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

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

        

        urls.py

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

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

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

        定义模型

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

# polls.py/model.py

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

        启用模型

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

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

INSTALLED_APPS = [
'polls.apps.PollsConfig',

# 以下六个是默认就存在的
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

终端运行代码

        运行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环境,这样,你就可以导入和调用任何你项目内的模块了。

 >>> from polls.models import Question, Choice # 导入我们写的模型类


    # 现在系统内还没有questions对象
    >>> Question.objects.all()
    <QuerySet []>


    # 创建一个新的question对象
    # Django推荐使用timezone.now()代替python内置的datetime.datetime.now()
    # 这个timezone就来自于Django的依赖库pytz
    from django.utils import timezone
    >>> q = Question(question_text="What's new?", pub_date=timezone.now())

    # 你必须显式的调用save()方法,才能将对象保存到数据库内
    >>> q.save()

    # 默认情况,你会自动获得一个自增的名为id的主键
    >>> q.id
    1

    # 通过python的属性调用方式,访问模型字段的值
    >>> q.question_text
    "What's new?"
    >>> q.pub_date
    datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=<UTC>)

    # 通过修改属性来修改字段的值,然后显式的调用save方法进行保存。
    >>> q.question_text = "What's up?"
    >>> q.save()

    # objects.all() 用于查询数据库内的所有questions
    >>> Question.objects.all()
    <QuerySet [<Question: Question object>]>

admin后台管理站点

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

python manage.py createsuperuser

注册投票应用 

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

from django.contrib import admin
from .models import Question

admin.site.register(Question)

视图和模板

编写视图

# polls/views.py文件

# 注意函数的参数
def detail(request, question_id):
    return HttpResponse("You're looking at question %s." % question_id)

def results(request, question_id):
    response = "You're looking at the results of question %s."
    return HttpResponse(response % question_id)

def vote(request, question_id):
    return HttpResponse("You're voting on question %s." % question_id)

去注册路径

# polls/urls.py

from django.urls import path

from . import views

urlpatterns = [
    # 例如: /polls/
    path('', views.index, name='index'),

    # 例如: /polls/5/
    path('<int:question_id>/', views.detail, name='detail'),

    # 例如: /polls/5/results/
    path('<int:question_id>/results/', views.results, name='results'),

    # 例如: /polls/5/vote/
    path('<int:question_id>/vote/', views.vote, name='vote'),
]

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')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值