会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题

  1. 老师对于下面这段代码,有一处我还能弄明白'

其中的author = relationship("User",backref=backref("comments")),怎么有时候又写成author = relationship("User",backref="comments"),“backref=”后面加backref的作用是?什么时候加呢?



from sqlalchemy import create_engine,Column,Integer,Float,Boolean,DECIMAL,Enum,\
    Date,DateTime,Time,String,Text,func,or_,and_,ForeignKey,Table
from sqlalchemy.dialects.mysql import LONGTEXT
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker,relationship,backref
import random

HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'first_sqlalchemy'
USERNAME = 'root'
PASSWORD = 'root'

DB_URI ="mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)

engine = create_engine(DB_URI)
Base = declarative_base(engine)

session = sessionmaker(engine)()

class User(Base):
    __tablename__ = 'user'
    id = Column(Integer,primary_key=True,autoincrement=True)
    uname = Column(String(50),nullable=False)

    # articles =relationship("Article",cascade="save-update,delete") #放入Article中去优化

class Article(Base):
    __tablename__ = 'article'
    id = Column(Integer, primary_key=True, autoincrement=True)
    title = Column(String(50), nullable=False)
    uid = Column(Integer,ForeignKey("user.id"))

    # author = relationship("User",backref="articles") #cascade默认为save-update
    # author = relationship("User",backref="articles",cascade="")
    # author = relationship("User",backref="articles",cascade="save-update") #明文指定 cascade的值
    # author = relationship("User",cascade="save-update,delete")
    author = relationship("User", backref = backref("articles",cascade="save-update,delete"),cascade="save-update,delete") #双向关系优化写法

class Comment(Base):
    __tablename__ = 'comment'
    id = Column(Integer, primary_key=True, autoincrement=True)
    content = Column(Text,nullable=False)
    uid = Column(Integer,ForeignKey("user.id"))

    # 优化写法
    author = relationship("User",backref=backref("comments"))

def add_data():
    Base.metadata.drop_all()
    Base.metadata.create_all()
    user = User(uname="momo")
    article = Article(title="华为5G")
    article.author = user
    session.add(article)
    session.commit()

    comment = Comment(content='你少说风凉话')
    comment.author = user
    session.add(comment)
    session.commit()

def oper_data():
    #relationship里边的cascade  可通过Article影响User
    # article = session.query(Article).first()
    # session.delete(article)
    # session.commit()

    # 反过来通过User也能影响Article
    user = session.query(User).first()
    session.delete(user)
    session.commit()

#总结1:relationship里边的cascade  可通过Article影响User,反过来通过User也能影响Article
#总结2:relationship里边的cascade 只会影响当前类User中relationship的模型Article,不会影响别的模型Comment
if __name__ == '__main__':
    # add_data()
    oper_data()

#ORM层面的relationship方法中cascade使用1




Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask数据库 860楼

Python:3.7.4

pycharm:2019.2.2

问题:无法实现子域名


个人代码:

domain.rar


问题:

image.png

一旦使用子域名就会找不到url

image.png

host文件已经修改:

image.png

Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图高级 865楼

还是报错啊?我看不懂错误信息

D:\python_virtualEnv\flask_env\Scripts\python.exe "D:\pycharmDownloads\PyCharm 2017.1.4\helpers\pydev\pydevd.py" --multiproc --qt-support --client 127.0.0.1 --port 56695 --file E:/ptyhon_project_flask/026_session_demo/026_session_demo.py

warning: Debugger speedups using cython not found. Run '"D:\python_virtualEnv\flask_env\Scripts\python.exe" "D:\pycharmDownloads\PyCharm 2017.1.4\helpers\pydev\setup_cython.py" build_ext --inplace' to build.

pydev debugger: process 9940 is connecting


Connected to pydev debugger (build 171.4694.38)

Traceback (most recent call last):

  File "D:\pycharmDownloads\PyCharm 2017.1.4\helpers\pydev\pydevd.py", line 1591, in <module>

    globals = debugger.run(setup['file'], None, None, is_module)

  File "D:\pycharmDownloads\PyCharm 2017.1.4\helpers\pydev\pydevd.py", line 1018, in run

    pydev_imports.execfile(file, globals, locals)  # execute the script

  File "D:\pycharmDownloads\PyCharm 2017.1.4\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile

    exec(compile(contents+"\n", file, 'exec'), glob, loc)

  File "E:/ptyhon_project_flask/026_session_demo/026_session_demo.py", line 43, in <module>

    @app.route('/login/',methods=['get','post'])

  File "D:\python_virtualEnv\flask_env\lib\site-packages\flask\app.py", line 1314, in decorator

    self.add_url_rule(rule, endpoint, f, **options)

  File "D:\python_virtualEnv\flask_env\lib\site-packages\flask\app.py", line 98, in wrapper_func

    return f(self, *args, **kwargs)

  File "D:\python_virtualEnv\flask_env\lib\site-packages\flask\app.py", line 1283, in add_url_rule

    "existing endpoint function: %s" % endpoint

AssertionError: View function mapping is overwriting an existing endpoint function: deleteSession


D:.Python \ \ fsVirtalenv \ \ ffflask \ \ env \ \ scripts \ \ python.exe \ \ xe \ \ pycharmdownloads \ \ pycharmdownloads \ \ pycharm 2017.1.4 \ \ helpers \ \ pydev \ pydev d.py“-------Multroc--QT-Support-客户127.0.0.0.0.1 Udemopy


下面是翻译过来的:

警告:使用未发现的Cython调试速度。运行“D”:Python=Virtalenv=Flask=UENV=Scripts=Python.exe“”D:Pycharmdownloads=Pycharm 2017.1.4=Helpers=Pydev=Setup=U Cython.py“Build=uild ext--Inplace to build.

Pydev debugger:process 9940 is connecting

Connected to Pydev Debugger(build 171.4694.38)

跟踪(最新呼叫最后):

File“D:.Pycharmdownloads..Pycharm 2017.1.4..Helpers=Pydev=Pydevd.py”,Line 1591,in<module>

Globals=Debugger.run(setup[` file'],none,none,is ^ umodule)

File“D:.Pycharmdownloads..Pycharm 2017.1.4..Helpers..Pydev..Pydevd.py”,Line 1018,in run

Pydev \ uimports.execfile(file,globals,locals)\ \ 355;execute the script

File“D:.Pycharmadownloads..Pycharm 2017.1.4..Helpers..Pydev \ \ Imps \ \ pydev \ \ execfile.py”,Line 18,in execfile

EXEC(Compile(contents+“.n”,file,,exec'),GLOB,loc)

File“E:/PTYHON=U Project=UFLASK/026 \ U session \ \ Demo.py”,Line 43,in Module>

@app.route('/login/',methods=[` get',post'])

File“D:.Python \ \ fsk \ \ fsk \ \ nv \ \ lib \ \ site-packages \ \ fsk \ \ app.py”,Line 1314,in Decorator

Self.add=URL=URL(Rule,Endpoint,F,**Options)

File“D:.Python \ \ fsk \ \ fsk \ \ nv \ \ lib \ \ site-packages \ \ fsk \ \ app.py”,Line 98,in wrapper \ \ func

回归F(自我,*Args,**Kwargs)

File“D:.Python \ \ fsk \ \ fsk \ \ nv \ \ lib \ \ site-packages \ \ fsk \ \ app.py”,Line 1283,in add \ \ url \\\ \ rule

存在终点函数:%S%Endpoint

关键词:视图函数映射是对存在终点函数的过滤:删除


Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask高级 866楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图基础和URL 868楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask高级 870楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637