私はフラスコファイルを作成していますが、機能とメソッドの一部を別のPythonファイルに配置して作業するのが簡単で、私のフラスコアプリの機能性だけです。私は何をするかを見てきましたが、何らかの理由で私と一緒に働いていないので、誰かが私を助けてくれることを望んでいました。私は以下のファイルスニペットとgithubのリンクを持っています。ファイルを別のファイルに移動する
githubの:https://github.com/omar-jandali/RoadTripWebsite
元のinitの.pyファイル:
import modu
from flask import Flask, render_template, request, redirect, url_for, flash
from flask import escape, session
from datetime import datetime
from sqlalchemy import *
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from database_setup import Users, Groups, Records, Base
@app.route('/validate_registration', methods=['GET', 'POST'])
def Validate_Registration():
usernameMinChars = 4
usernameMaxChars = 12
passwordMinChars = 8
passwordMaxChars = 14
if request.method == 'POST':
# this is all of the fields in the form
username = request.form['username']
email = request.form['email']
password = request.form['password']
verify = request.form['verify']
check_username = db_session.query(Users).filter_by(Username = username).\
first()
check_email = db_session.query(Users).filter_by(Email = email).first()
if username != None:
if len(username) >= usernameMinChars:
if len(username) <= usernameMaxChars:
if check_username == None:
valid_username = username
else:
flash('The username ' + username + ' is already in use')
return redirect(url_for('Registration'))
else:
flash('The username is too long')
return redirect(url_for('Registration'))
else:
flash('The username is too short')
return redirect(url_for('Registration'))
else:
flash('Youh ave to enter a username to register')
return redirect(url_for('Registration'))
変更したサーバ/ のinitの.pyファイル(私は別のにDEFを呼び出すようにそれをchagneしたいですユーザー名を確認し、有効な場合はユーザー名を送信してください)。
置き換え:
if username != None:
if len(username) >= usernameMinChars:
if len(username) <= usernameMaxChars:
if check_username == None:
valid_username = username
else:
flash('The username ' + username + ' is already in use')
return redirect(url_for('Registration'))
else:
flash('The username is too long')
return redirect(url_for('Registration'))
else:
flash('The username is too short')
return redirect(url_for('Registration'))
else:
flash('Youh ave to enter a username to register')
return redirect(url_for('Registration'))
:
valid_username = modu.ValidateUsername(check_username)
**私はのinitの.pyファイルの先頭
で輸入されているのと同じファイルディレクトリ内MODUと呼ばれる新しいファイルを追加している。ここで必要に応じてinit .pyファイルで呼び出すことができるすべてのdefを保持するために作成されたmodu.pyファイル。
from flask import Flask, render_template, request, redirect, url_for, flash
from flask import escape, session
from datetime import datetime
from sqlalchemy import *
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from database_setup import Users, Groups, Records, Base
def ValidateUsername(username):
if username != None:
if len(username) >= usernameMinChars:
if len(username) <= usernameMaxChars:
if check_username == None:
valid_username = username
return valid_username
else:
flash('The username ' + username + ' is already in use')
return redirect(url_for('Registration'))
else:
flash('The username is too long')
return redirect(url_for('Registration'))
else:
flash('The username is too short')
return redirect(url_for('Registration'))
else:
flash('Youh ave to enter a username to register')
return redirect(url_for('Registration'))
したがって、リダイレクトオブジェクトを変数 'valid_username'として戻したいとしますか? –
何が例外ですか? – stamaimer
私はユーザー名を渡し、すべてのバリデーションが合格したことを確認し、すべてのバリデーションが合格した場合は、ユーザー名を返信してデータベースに保存できるようにします。 @ cricket_007は、コードのブロックでそれを行います。 –